Kurz zur Sache. Ich habe eine Klasse in der verschiedene Werte gespeichert sind.
Nun sollen diese Werte alle in ein Stream gespeichert und von dort anschließend in ein String umgewandelt werden. Wie mache ich das? Alles was ich bisher probiert habe war leider ohne Erfolg, delphi gibt aber auch keine Fehlermeldung aus. Wenn ich die Daten aber als Dokument mit TFileStream auf die Festplatte speichere, dann werden dort alle Daten geschrieben. Nun habe ich als Typ TMemoryStream drauß gemacht und möchte, dass die Daten quasi in den Arbeitsspeicher gespeichert werden, und von dort in ein String gepackt werden.
Delphi-Quellcode:
procedure Tver.Button4Click(Sender: TObject);
var strom: TMemoryStream;
i: integer;
text: string;
begin
strom := TMemoryStream.Create;
strom.Write(anz,SizeOf(anz));
for i:= 1 to anz - 1 do
pwli[i].speichern(strom);
text := MemoryToString(strom);
ShowMessage(text);
strom.Free;
end;
Und die Funktion zum Umwandeln MemoryToString:
Delphi-Quellcode:
function MemoryToString(ms: TMemoryStream): AnsiString;// inline;
var
Len: Integer;
begin
ms := TMemoryStream.Create;
try
Len := ms.Size;
SetLength(Result, Len);
if Len > 0 then
ms.ReadBuffer(Result[1], Len);
finally
ms.Free;
end;
end;
Ich sitze jetzt schon die ganze Nacht dran, weil ichs einfach nur ins String speichern will. Langsam bin ich am Verzweifeln.
Für Hilfe wäre ich sehr dankbar. Auch was die Rückwärtsfunktion angeht, dass ich aus einem String wieder ein TMemoryStream erhalte, und die Daten somit wieder auslesen kann.