paquechu,
Cita:
Empezado por paquechu
...Debo hacer un programa que inspeccione un archivo de log abierto por otra aplicación y al que ésta última le esta añadiendo líneas contínuamente.....Debo localizar el archivo, abrirlo y empezar a leer desde el final línea a línea...
|
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
ListBox1: TListBox;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function GetFileLastLine(const Filename : String) : String;
var
StrFile : TStringList;
begin
try
StrFile := TStringList.Create;
StrFile.LoadFromFile(Filename);
Result := StrFile[StrFile.Count-1];
except
on E: Exception do
begin
MessageDlg(E.Message, mtError, [mbOk],0);
Result := '';
end;
end;
StrFile.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ListBox1.Items.Add(GetFileLastLine('C:\Test_File.txt'));
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Timer1.Interval := 100;
end;
end.
El código anterior lee de forma continua por medio de un control
TTimer cada 100 ms la última línea de un archivo de texto y la adiciona a un control
TListBox para su posterior procesamiento.
Nota: Este código fue
probado con un archivo de texto de 2.000.000 de líneas de forma satisfactoria.
Espero sea útil
Nelson.