Ok, danke!
Ich habe mich jetzt dran gemacht und das ganze zunächst als FileStream / StringToStream zu lösen. Leider habe ich jetzt das Problem, dass offenbar die Strings falsch geschrieben und/oder gelesen werden: Wenn ich "True" schreibe, kommt zumindest (spätestens) beim Lesen ein "TrXX" (XX = komische Zeichen). Ich vermute, es ist ein Codierungsproblem (PChar usw.). Habe dahingehend schon im Forum gesucht, aber die Lösungsvorschläge dort (für D2009) haben nicht funktioniert.
Mein Code für das Speichern/Lesen der Strings und Integer:
Delphi-Quellcode:
Function StreamToString(aStream: TStream): string;
var
Len: longint;
tempstr: String;
begin
aStream.Read(Len, SizeOf(Len));
SetLength(tempStr, Len);
aStream.Read(PChar(tempStr)^, Len);
result:= tempStr;
end;
Function StreamToInteger(aStream: TStream): integer;
var
tempint: integer;
begin
aStream.Read(tempint, SizeOf(tempint));
result:= tempint;
end;
//----------
Procedure StringtoStream(aStream: TStream; astring: string);
var
len: longint;
begin
len:= Length(astring);
aStream.Write(len, Sizeof(Len));
aStream.Write(PChar(aString)^, Len);
end;
Procedure IntegertoStream(aStream: TStream; aint: integer);
begin
aStream.Write(aint, SizeOf(aint));
end;
Ich nutze Delphi XE3 - und die Strings sind von 0 Zeichen bis sehr große Datentabellen-Strings (und sollten eigentlich überall AnsiString sein).
Wenn ich anstelle von PChar einfach AnsiChar nehme, bekomme ich einen Error für ungültige Typumwandlung.
Danke und schöne Grüße,
frieder