Hier ist mal noch die Variante für ReadLn, angepasst mit der Struktur ähnlich der von Furtbichler. Es gibt jetzt von der Geschwindigkeit keinen Unterschied mehr zur MMF-Klasse, jedenfalls für meine Anwendung.
Testdatei: 56MB Text
ReadLn Version: 3141349 Funde, Zeit: 1468ms
MMF-Klasse Version: 3139069 Funde, Zeit: 1438ms (wegen oben beschriebenen Problems weniger Funde, deshalb wahrscheinlich auch hier minimal schneller)
Delphi-Quellcode:
function EineSeiteLesen(var pDateiname: TextFile; var pSeite : String; var pZeile: String): Boolean;
begin
Result:= True;
pSeite:= '';
if pZeile <> '' then pSeite:= pZeile; //Rest aus dem vorherigen Durchlauf
while not EOF(pDateiname) do
begin
ReadLn(pDateiname,pZeile);
if Pos(#12,pZeile) > 0 then
begin
Delete(pZeile,1,1);
Exit;
end
else
pSeite:= pSeite + pZeile + #13#10;
end;
Result:= False;
end;
(Textbuffer steht auf 1024*1024)