Hab das bei mir so implementiert:
Delphi-Quellcode:
procedure WriteToLog ( Filetype : integer; str : string; sucess : boolean);
var
F : File of byte;
...
begin
NewFile := False;
try // Test Datei ist voll
AssignFile(f, Prot_Directory + '\LOGFILE.TXT');
Reset(f);
size := FileSize(f);
if Size > MaxinmalSize then begin
Seek(F, 95 + 80); // Oberen Header stehen lassen
Truncate(F); // Datei eventuell hinten abschneiden
end;
closeFile(F);
AssignFile (Datei, Prot_Directory + '\LOGFILE.TXT'); // Datei neu öffnen
reset(Datei);
Append(Datei); // Hinzufügen von Text am Ende
Writeln(Datei, '');
closefile(Datei); // Schliessen
except
{$IOCHECKS OFF}
// Datei anlegen wenn noch nicht existent!
{$IOCHECKS ON}
end; // except
end;
Man des riesen Sprungs über Seek bis fast nach vorne könnte man natürlich auch Zeile für Zeile löschen
Hoffe das hilft Dir