Bei so großen Dateien würde ich es vermeiden die neuen Daten in eine Zweite zu kopieren.
Man könnte die Datei auch Binäry betrachten.
Delphi-Quellcode:
var iMove : Integer; // Gibt an um wieviel Bytes eine Zeile vorkopiert werden soll
stm := TFileStream.Create(...);
iMove := 0;
while stm.Size > stm.Position do
begin
sLine := ReadLine(stm);
if MatchDel(stm) then
begin
Inc(iMove, Length(sLine));
Inc(iMove, 2); // CRLF
end
else
begin
stm.Seek(soFromCurrent, -iMove);
stm.Write(PChar(sLine)^, Length(sLine));
stm.Write(cCRLF, 2);
stm.Seek(soFromCurrent, iMove);
end;
end;
Vorsicht: Aus der kalten getippt!