Einzelnen Beitrag anzeigen

-Lucky-

Registriert seit: 4. Mai 2008
28 Beiträge
 
Delphi 7 Enterprise
 
#1

TMemoryStream in String umwandeln - funzt nicht...

  Alt 12. Mai 2008, 03:44
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.
  Mit Zitat antworten Zitat