Einzelnen Beitrag anzeigen

Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#41

AW: Eigenes Zeichen für Zeilenende bei ReadLN

  Alt 23. Mai 2013, 15:56
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)

Geändert von Ginko (23. Mai 2013 um 16:41 Uhr)
  Mit Zitat antworten Zitat