Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Zeilenumbruch ersetzen Algorithmus

  Alt 15. Mär 2018, 12:01
Nun ist mir wieder eingefallen in welchen Zusammenhang ich ReadLn() verwendete so das es auch noch relativ flott war.

hier ein mini beispiel:
Delphi-Quellcode:
begin
 test := TStreamReader.Create('C:\Test\Temp\Delphi\DP\Testing\Textfile.txt'); // hier kann auch ein dein puffer rein (TStream/Memory/File) damit es schneller abläuft
// wenn im puffer-modus, musst du noch eine methode einbauen die die letzten zeichen vor dem ende sich "merkt" und beim nächsten puffer-laden vorneweg einbindet
// LESE UNBEDINGT VORHER DIE DELPHI HILFE UM ZWISCHEN ASCII UND UTF-8 DATEIEN ZU UNTERSCHEIDEN, im normalfall wird ascii (0-127) verwendet (ich glaube so etwas gelesen zu haben)
 try
  while not(test.EndOfStream) do // in diesem beispiel verarbeite den TStreamReader.Create komplett bis zum ende der datei
   begin
    Memo1.Lines.Add(test.ReadLine); // das hier ist nur platzhalter damit man weiß wie man ReadLine benutzt
// wenn du RichEdit anstelle von Memo nimmst, wird es ein wenig schneller
// Memo konvertiert manchmal alles nochmal um und verbraucht damit 2-4x soviel speicher bei gleicher datenmenge
// hier könntest du zum beispiel 100 zeilen in eine tstringlist o.ä. sammeln/puffern
// die strings eventuell noch bearbeiten
// und dann alle 100 auf einen rutsch in die anzeige mit beginupdate/endupdate zu casten
   end;
 finally
  test.Free;
 end;
end;
// dieses beispiel geht von richtigen input/output angaben aus und besitzt deswegen keinerlei weiterer checks
// try -> finally reichte mir zum testen aus
Zu Deinen Fragen:
1. Mit Puffern meine ich das was Du bereits machst, dir einen Teil vom ganzen Puffern (TStream).
2.1 Ich meinte Leerzeilen, nicht Leerzeichen

2.2 Die Zeile hier drüber ist eine Leerzeile und überall wo nichts steht ist ein Leerzeichen, das macht einen großen Unterschied
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat