vielleicht hilft diese Routine:
Delphi-Quellcode:
procedure TCustomSettings.LoadFromStream(const Stream: TStream) ;
var
Reader: TReader;
PropName, PropValue: string;
begin
Reader := TReader.Create(Stream, $FFF) ;
Stream.Position := 0;
Reader.ReadListBegin;
while not Reader.EndOfList do
begin
PropName := Reader.ReadString;
PropValue := Reader.ReadString;
SetPropValue(Self, PropName, PropValue) ;
end;
FreeAndNil(Reader) ;
end;
Quelle
Grüße
Klaus
Danke Dir, so funktioniert es. Habe eine äquivalente SaveToStream Methode dazu geschrieben.
Es hat allerdings nicht sofort funktioniert, das Lesen schon aber anschließendens Schreiben nicht. EFOpenError für den Writer.
Die Ursache dafür war:
Der Stream wird mit FreeAndNil(Reader) nicht mit frei gegeben. Dies muss mit
Stream.Free nach FreeAndNil(Reader) separat erfolgen.
Dann funktioniert auch das Schreiben in die Datei danach.