Einzelnen Beitrag anzeigen

neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#19

Re: aus 480 MB txt Datei, bestimmte Zeilen löschen lassen...

  Alt 5. Feb 2004, 14:45
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!
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat