[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