Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#9

AW: Problem mit writeln (Text erstellen)

  Alt 22. Jun 2012, 16:45
TStringStream + TFileStream




Text-Dateien haben auch ohne SetTextBuf schon einen komischen 128 Byte-Puffer.

Das paßt nichtmal im Geringsten zur ClusterSize der Partitionen oder zur SectorSize der Datenträger.

Beim Lesen ist ein Puffer OK, aber wozu beim Schreiben?
Die Daten gehen sowieso nochmal durch die WFC (Windows File Cache ... das Teil, welches den RAM voll macht) und dann nochmal durch verschiedenste Caches.

Wenn das Programm abstürtzt, sind diese Daten weg, was geade bei LogDateien etwas blöd ist, vorallem wenn man das Warum wissen will.

Delphi-Quellcode:
var
  F: TextFile;
  B: Byte; // für LogDateien so klein wie möglich (0 ist leider nicht möglich) und ansonsten wäre es ein bissl größer nicht schlecht.
begin
  AssignFile(F, 'Text.dat', CP_UTF8); // Ja, wir können jetzt sogar unicode, auch wenn die BOM nicht automatisch rein kommt.
  System.SetTextBuf(F, B);
  Rewrite(F);
  WriteLn(F, '123456');
  CloseFile(F);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat