Autor Beitrag
NetZwerg
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 448

Slackware 10.1
Kylix 3, D5 Standard
BeitragVerfasst: Mo 03.04.06 22:51 
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.

ausblenden 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

_________________
"Manche Leute drücken nur deshalb ein Auge zu, damit sie besser zielen können."
Billy Wilder, amer. Filmregisseur
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: 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 ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mo 03.04.06 22:59 
Moin!


user profile iconNetZwerg 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 448

Slackware 10.1
Kylix 3, D5 Standard
BeitragVerfasst: Mo 03.04.06 23:00 
Hee... danke :roll:

_________________
"Manche Leute drücken nur deshalb ein Auge zu, damit sie besser zielen können."
Billy Wilder, amer. Filmregisseur