Einzelnen Beitrag anzeigen

Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#30

Re: Große Datei sortieren ohne komplett in den Speicher zu l

  Alt 13. Mär 2009, 19:29
Der Code von himitsu hat mich erst verwirrt...
Delphi-Quellcode:
  i := 0;
  While not EoF(InFile) do Begin
    ReadLn(InFile, S);
    Inc(i);
  End;
  SetLength(List, i);
Er zählt erst nur die Zeilen um danach nochmal die Datei komplett zu lesen...

...bis ich festgestellt hab, dass das...
Delphi-Quellcode:
i := Length(FileIndex);
SetLength(FileIndex,i+1);
innerhalb einer großen Schleife seeehr langsam ist.

SetLength sollte man also in größeren Blöcken reservieren. Um eine Datei nicht 2x lesen zu müssen, kann man auch große Blöcke reservieren und bei Bedarf immer erweitern (am Ende dann halt auf tatsächliche Größe beschneiden).
  Mit Zitat antworten Zitat