Entwickler-Ecke
Dateizugriff - TMemoryStream: Leer?
NetZwerg - Mo 03.04.06 22:51
Titel: TMemoryStream: Leer?
Hi,
ich habe mir eine StringList erstellt, diese Inhalte in einen MemoryStream gespeichert und direkt danach wieder geladen. Vorher ist was in der StringList vorhanden, im MemoryStream ist auch das drin, was drin sein soll, nur nach dem Laden ist die StringList leer.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| function TForm1.Param(Str: String; Param: Integer): String; var TheStrings: TStringList; TheStream: TMemoryStream; begin TheStrings:=TStringList.Create; TheStrings.Add(Stringreplace(Str,' ',#13#10,[rfreplaceall])); TheStream:=TMemoryStream.Create; TheStrings.SaveToStream(TheStream); TheStrings.LoadFromStream(TheStream); try Result:=TheStrings.Strings[Param-1]; except Application.ProcessMessages; end; TheStrings.Free; TheStream.Free; end; |
Der Sinn ist eigentlich, dass ein String wie "PARAM1 PARAM2 PARAM3" in die einzelnen Parameter unterteil wird. Dazu ersetze ich die Leertasten durch Zeilenumbrüche, Streame das da rum und müsste so am Ende die einzelnen Strings in meiner Stringliste haben. Warum habe ich das nicht? :D
Danke,
David
BenBE - Mo 03.04.06 22:55
LoadFromStream liest ab der Stelle im Stream, wo der Datenzeiger steht ... Und am Ende steht halt nix mehr ;-)
Setzte zwischen Speichern und erneutem Laden ein Stream.Position := 0; und es sollte gehen ;-)
Narses - Mo 03.04.06 22:59
Moin!
NetZwerg hat folgendes geschrieben: |
Der Sinn ist eigentlich, dass ein String wie "PARAM1 PARAM2 PARAM3" in die einzelnen Parameter unterteil wird. Dazu ersetze ich die Leertasten durch Zeilenumbrüche, Streame das da rum und müsste so am Ende die einzelnen Strings in meiner Stringliste haben. |
Ähm, schonmal mit .DelimitedText oder .CommaText bzw. .Text der TStringList vertraut gemacht? ;) Irgendwie hat das was von Wasserstoffbomben und Spatzen... :gruebel:
cu
Narses
NetZwerg - Mo 03.04.06 23:00
Hee... danke :roll:
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!