Entwickler-Ecke
Dateizugriff - Stream beschreiben und auslesen - Was mache ich falsch?
LittleBen - Mo 19.09.11 15:42
Titel: Stream beschreiben und auslesen - Was mache ich falsch?
Hallo zusammen,
ich weiß, dass es zu diesem Thema hunderte Beiträge im Netz gibt, jeodch konnten die mir nicht weiterhelfen. Beim beschreiben und auslesen eines Memorystream passiert bei mir einfach nichts, dabei habe ich die verschiedensten Methoden ausprobiert. Könnt ihr mir sagen, was ich hier falsch mache?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Button1Click(Sender: TObject); var Stream: TMemoryStream; cText: string; len: integer; begin Stream:= TMemoryStream.Create;
cText:= 'Test'; Len := Length(cText); Stream.WriteBuffer(Len, SizeOf(Len)); Stream.WriteBuffer(Pointer(cText)^, Len);
showmessage(LoadStringFromStream(Stream)); Stream.Free; end; |
Vermute, dass ich da etwas grundlegendes nicht verstanden habe.
Hoffe, ihr könnt mir helfen!
Viele Grüße,
Benny
Andreas L. - Mo 19.09.11 15:47
Wieso nicht gleich einen TStringStream verwenden?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| var ss: TStringStream; s: String; begin ss := TStringStream.Create; try ss.WriteString('dein string'); s := ss.ReadString(ss.Size); finally ss.Free; end; |
Gausi - Mo 19.09.11 15:48
Was macht denn LoadStringFromStream?
Ist aber vermutlich egal - der Fehler dürfte darin liegen, dass du die Position im Stream nicht zurücksetzt. Denn so wird der String von dort gelesen, wo du dich aktuell im Stream befindest. Und das ist bei dir das Ende, da kann dann nichts mehr gelesen werden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!