So, nach vielerlei Versuchen, das vernünftig hinzubekommen, bin ich auf die von mir bisher noch nie verwendeten
TBinaryWriter und TBinaryReader gestoßen.
damit war die Umsetzung absolut problemlos:
Schreiben:
Delphi-Quellcode:
ms.Clear;
BW := TBinaryWriter.Create(ms, TEncoding.Unicode, false);
BW.Write(Dict.Count);
for Pair in Dict do
begin
BW.Write(Pair.Key);
BW.Write(Pair.Value);
end;
BW.Free;
Lesen:
Delphi-Quellcode:
Dict.Clear;
ms.Position := 0;
BR := TBinaryReader.Create(ms, TEncoding.Unicode, false);
anz := BR.ReadInteger;
for i := 1 to anz do
begin
Key := BR.ReadString;
Value := BR.ReadString;
Dict.Add(Key, Value);
end;
BR.Free;
Damit sind auch die Probleme mit jeglichen Steuer/Sonderzeichen in den Values gelöst, die in der ersten manuellen Variante hätten auftreten können
Ciao
Stefan