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).