Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi TStringStream, nur andersrum o.O (https://www.delphipraxis.net/158136-tstringstream-nur-andersrum-o-o.html)

himitsu 7. Feb 2011 11:08

TStringStream, nur andersrum o.O
 
Moin, also ich hab zwar für mich schon eine Lösung, aber dennoch eine Frage dazu...

Warum kann man den TStringStream nicht nutzen, um einen String aus einem Stream rauszuholen? :shock:

TStringReader oder so hilft da auch nichts.

Grund:
auf einer Seite wollte ich einen String in einen Stream verfrachten, welches ja mit TStringStream und WriteString geht.
Nach der Datenübertragung wollte ich dann den String wieder aus dem Stream rausholen, aber irgendein Id*** hat da was vergessen, so daß man keinen Stream übergeben kann, um danach über ReadString auszulesen. :wall:

Wenn ich jetzt den Stream z.B erst in ein TBytes umwandeln muß, um den TStringStream nutzen zu können, dann kann ich auch gleich den Stream in einem String kopieren.

Deep-Sea 7. Feb 2011 11:23

AW: TStringStream, nur andersrum o.O
 
Delphi-Quellcode:
MeinStringStream.CopyFrom(Quellstream, 0);
:gruebel:

himitsu 7. Feb 2011 11:35

AW: TStringStream, nur andersrum o.O
 
is ja umständlich :oops:
hatte im Constructor gesucht.

so ala
Delphi-Quellcode:
X := TStringStream.Create(MyStream);
S := X.ReadString;
X.Free;

Bummi 7. Feb 2011 11:42

AW: TStringStream, nur andersrum o.O
 
Das meintest Du nicht?


Delphi-Quellcode:
var
  st:TStringStream;
  s1,s2:String;
begin
  s1 := 'TestString';
  st:=TStringStream.Create;
try
  st.WriteString(s1);
  st.Position := 0;
  s2 := st.ReadString(st.Size);
  Showmessage(s2);
finally
  st.Free;
end;

end;

himitsu 7. Feb 2011 11:46

AW: TStringStream, nur andersrum o.O
 
Nicht ganz.
Auf Clientseite kommt ein String in 'nen Stream rein,
dieser wird dann zum server übertragen
und dort muß der String wieder aus dem Stream raus.
Delphi-Quellcode:
function TDataServerDemoMethods.AddStream(S: String; StringStream: TStream): String;
Bei der Datenübertrageung kommt der Stream dann aber nicht als TStringStream im Server an, da dort vom Server ein neues/anderes Stream-Objekt erstellt wurde.

Deep-Sea 7. Feb 2011 11:51

AW: TStringStream, nur andersrum o.O
 
Kannst ja gerne eine Klasse von TStringStream ableiten und ihr einen Constructor verpassen, der dir passt :wink:

himitsu 7. Feb 2011 12:04

AW: TStringStream, nur andersrum o.O
 
Sowas hätte Emba aber auch schon verbauen können, denn wenn man damit einen String in einen Stream reinmachen kann,
Delphi-Quellcode:
X := TStringStream.Create('abcde');
.
dann wäre der umgekehrte Weg doch auch sehr naheliegend gewesen? :angle:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz