Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Größe von TStrings in Byte ermitteln

  Alt 30. Mär 2011, 18:07
[edit] Müsste doch auch mit Length(Stringlist.Text) * SizeOf(Char) zu machen sein, das wäre zumindest einfacher. [/edit]
Das funktioniert nur bedingt, nämlich dann, wenn die Zeilen #13#10 als Zeilenvorschub haben, und die letzte Zeile mit #13#10 abgeschlossen wird.
Wenn man die Eigenschaft Text verwendet werden alle Zeilenvorschübe auf #13#10 angepasst (auch, wenn in der Datei evtl. nur #10 verwendet wird), und die letzte Zeile wird auch mit #13#10 beendet (auch wenn die Datei am letzten Zeichen der letzten Zeile ohne weiteren Zeilenvorschub endet.)

Beispiel:


Delphi-Quellcode:
const
  _sContent = 'Zeile1'#10'Zeile2'#10'Zeile3';

var
  sl : TStringList;

begin
  sl := TStringList.Create;
  try
    ShowMessage(IntToStr(Length(_sContent)));
    sl.Text := _sContent;
    ShowMessage(IntToStr(Length(sl.Text)));
  finally
    sl.Free;
  end;
end;
Erste Ausgabe 20, zweite 24.
Das gilt auch, wenn man die Daten aus einer Datei einliest.
Deswegen kann man mit TStringList auch so schön Dateien mit die #10 als Zeilenvorschub haben durch laden und speichern mit #13#10 versehen
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat