Ist euch eventuell schonmal in den Sinn gekommen das mann mehre Strings in eine Datei schreiben will? Und in so einem Fall nützt mir TFileStream.Size reichlich wenig weil ich anhand der gesamtgröße nicht weiß wo welcher String aufhört!
Zur Ausgangsfrage: Wenn ein String geschrieben werden soll dann musst du das erste Zeischen angeben. Und anstelle von SizeOf solltest du bei Strings "Length" verwenden.
Zu Schreiben
Delphi-Quellcode:
var LLen: Integer;
begin
[...]
LLen := Length(ini);
Settings.Write(LLen, SizeOf(LLen));
Settings.Write(ini[1],LLen);
[..]
zum Lesen
Delphi-Quellcode:
var LLen: Integer;
begin
[...]
Settings.Read(LLen, SizeOf(LLen));
SetLength(ini);
Settings.Read(ini[1],LLen);
[..]