Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2007
Isabel_AS Isabel_AS is offline
Registrado
 
Registrado: ene 2007
Posts: 9
Poder: 0
Isabel_AS Va por buen camino
Question Lectura de fichero clipper

Hola:
Estoy intentando leer un fichero e interpretar los datos que contiene para incorporarlos a mi BD pero no lo consigo del todo.

El fichero en cuestión proviene de una aplicación hecha en clipper para msdos y contiene información en texto y en ??.

Me gustaría coger la información que "entiendo" y saltarme el resto hasta el siguiente "¿registro?", pero no soy capaz de leer el marcador que hay antes de cada código de cliente desde delphi.

No suelo trabajar con ficheros y me estoy haciendo un lío con los File, TextFile y File of, no se cuál de ellos usar.

El marcador que hay antes de cada código es una cadena de 00 en hexadecimal (en algunos casos 32 seguidos y en otros más).

Mi código de momento está en este punto:

procedure TfrmMain.Convierte;
var
i, nNulo: integer;
Ch: WideChar;
FPaciente : TextFile;
begin
// Abrimos el fichero @PACIENT
AssignFile(FPaciente, RutaOrigen + '@PACIENT');
Reset(FPaciente);
...
// Aquí leo datos de texto conocidos
for i := 1 to 4 do begin
Read(FPaciente, Ch);
MyCodigo := MyCodigo + Ch;
end;
// Nombre
MyNombre := '';
for i := 1 to 30 do begin // [ 5.. 34] Nombre = Nombre
Read(FPaciente, Ch);
MyNombre := MyNombre + Ch;
end;
...
// Cuando llego a los caracteres especiales me los quiero saltar hasta encotrar los nulos y el código siguiente
repeat
// Intento leer hasta el final del registro
nNulo := 0;
repeat
Read(FPaciente, Ch);
if (Ch = $00) then <-- Esta comparación es la que no se hacer
nNulo := nNulo + 1
else
nNulo := 0;
until (nNulo >= 32);
// Quiero llegar al final de los nulos (porque a veces hay más de 32)
repeat
Read(FPaciente, Ch);
until (Ch <> $00);

// Intento leer el código siguiente
MyCodigo2 := '';
MyCodigo2 := MyCodigo2 + Ch;
for i := 1 to 3 do begin
Read(FPaciente, Ch);
MyCodigo2 := MyCodigo2 + Ch;
end;
until ((StrToInt64Def(MyCodigo2, -1) <> -1)); // Si lo siguiente a los nulos no es un código, sigo leyendo...
...
end;

¿Alguna ayuda, por favor? Muchas gracias.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener un fichero adjunto a un nodo de un fichero XML muntasil Internet 0 18-07-2006 12:57:57
Delphi V.S. Clipper AGAG4 Varios 7 01-08-2005 21:39:31
Clipper en 3 Capas ???? AGAG4 Providers 3 30-06-2005 19:03:17
Analogia con Clipper JorgeBec Varios 4 12-06-2004 02:01:55
De clipper a Delphi... JorgeBec Varios 15 22-04-2004 23:05:19


La franja horaria es GMT +2. Ahora son las 14:26:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi