Estimados todos.
Hace dias que vengo con un problema y no puedo darme cuenta donde esta y supongo que 4 ojos

veran mucho mas que yo.
Resulta que tengo que leer y procesar varios archivos de texto que se generan automaticamente y son enviados desde equipos medicos hacia una carpeta compartida. Mi sistema los lee e inserta los resultados en el sistema.
Estos archivos pueden contener 1, 2 o n lineas con un formato especifico pero con contenido muy diferente segun el equipo que los envia.
Mi problema resulta al leer el contenido de los archivos segun el siguiente codigo.
Código Delphi
[-]
AssignFile( cArchi, cArchivo );
Reset( cArchi );
while not Eof( cArchi ) do
begin
Readln( cArchi , cCadena );
nficha := StrToInt(Trim( Copy( cCadena, 1, 6 ) ) )
while ( not Eof( cArchi ) ) and ( nficha = StrToInt(Trim( Copy( cCadena, 1, 6 ) ) ) ) do
begin
Readln( cArchi , cCadena );
end
end
Necesito hacer ese corte de control en el medio porque puedo tener varias lineas para el mismo paciente, el problema real que tengo es que cuando ejecuta el comando READLN, y x ej. el contenido es solo una linea, al entrar al segundo while y pregunta por eof(), ya llego al final, entonces no me procesa nada, lo mismo cuando entro en el segundo while cuando contiene mas de una linea, al leer la ultima linea del archivo, tambien eof() resulta true y por eso no me la procesa.
La verdad hace dias que estoy tratando de resolver esto y siempre me pierde la ultima linea.
Hay otra manera de usar readln() u otra funcion que me devuelva fin de archivo cuando intengo seguir?
Gracias mil a quien pueda responder.
Saludos
Leo