Hola paquechu.
Para leer el archivo de texto podes hacer:
1)
Código Delphi
[-]
var
F : TextFile;
str: string;
begin
AssignFile(F, FNAME);
Reset(F);
while not Eof(F) do
begin
Readln(F,str);
end;
CloseFile(F);
end;
2)
Código Delphi
[-]
var
SL: TStrings;
begin
SL := TStringList.Create;
try
SL.LoadFromFile(FNAME);
finally
SL.Free
end
end;
Un ejemplo que devuelve la última línea del archivo log:
Código Delphi
[-]
function GetLastLine(const aFileName: string): string;
var
FS : TFileStream;
buf : Char;
i : Integer;
begin
FS := TFileStream.Create(aFileName, fmOpenRead);
try
Result := '';
i := FS.Size + 2;
repeat
FS.Seek(FS.Size-i, soEnd);
FS.Read(buf, SizeOf(buf));
Insert(buf, Result, 1);
Inc(i);
until buf = #10;
finally
FS.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetLastLine('C:\ARCHIVO_LOG.LOG'))
end;
De este modo es mucho mas rápido que leer todo el archivo si te decidis por obtener datos con, por ejemplo, un
TTimer.
Pero el último código es sólo una aproximación, con muchos supuestos, podría funcionar o no dependiendo del formato con que guarda las líneas la aplicación. Sería muy útil si pudieras poner textualmente (copiar/pegar) un trozo del texto que se genera en el archivo log.
Ahora si lo que estas buscando es obtener la última línea en tiempo real y la aplicación generadora no envía ningún mensaje cuando terminó de guardar una línea, no conozco como lograrlo.
Espero que alguna opción te sea útil.
Saludos.