Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi tstringlist.savetostream(); <-- welcher stream is richitg? (https://www.delphipraxis.net/75053-tstringlist-savetostream-%3B-welcher-stream-richitg.html)

gandime 13. Aug 2006 15:14


tstringlist.savetostream(); <-- welcher stream is richit
 
hi,
ich mochte meine tstringlist in ein stream umwandeln und mein problem dabei is das ich weiss welche art von stream ich dafür brauche.
ich hab schon tstream tmemorystream und tstringstream versucht das zeicht zwar keine fehlermeldung an aber ich weiss nicht wie ich es auslesen kann

mfg gandime

ManuMF 13. Aug 2006 15:17

Re: tstringlist.savetostream(); <-- welcher stream is ri
 
Na, zuerst solltest du wissen, wofür du den Stream brauchst - MemoryStream ist nur im Speicher, FileStream ist eine Datei, ...
Die Hilfe listet unter Delphi-Referenz durchsuchenTStream die verschiedenen Typen auf.

Jürgen Thomas 13. Aug 2006 15:19

Re: tstringlist.savetostream(); <-- welcher stream is ri
 
Und wenn es nur ums Lesen/Speichern geht, dann kannst Du doch die Stringliste direkt verwenden:
Delphi-Quellcode:
StringList1.SaveToFile(sDateiname);
StringList1.LoadFromFile(sDateiname);
Das "Kopieren" aus einer StringListe in einen Stream geht i.d.R. über WriteBuffer:
Delphi-Quellcode:
MyStream.WriteBuffer( PChar(StringList1.Text), Length(StringList1.Text) );
Dies gilt für alle Arten von Stream (mit Ausnahme von TStream, weil die Prozedur dort noch nicht mit Inhalt gefüllt ist - siehe Delphi-Referenz durchsuchenTStream.

Jürgen

gandime 13. Aug 2006 15:37

Re: tstringlist.savetostream(); <-- welcher stream is ri
 
ich möchte das erst in einen stream umwandeln und dann via indy verschicken und dann wieder auslesen und nicht den umweg über savetofile und dann verschicken usw.

Jürgen Thomas 13. Aug 2006 16:01

Re: tstringlist.savetostream(); <-- welcher stream is ri
 
Beziehst Du Dich auf Deine Frage strings via indy tcp versenden
[url=http://www.delphipraxis.net/internal_redirect.php?t=89703&highlight=indy]?

Dann solltest Du die dortige Information berücksichtigen:
Zitat:

Zitat von arbu man
Fall 1: TStrings.Text dann ist es wieder ein String;

Delphi-Quellcode:
var s1: string;
...
s1 := StringList1.Text;
Damit hast Du einen einzigen String s1 (der entsprechend viele #13#10 als CR enthält). Kannst Du den versenden?

Jürgen

ManuMF 13. Aug 2006 16:44

Re: tstringlist.savetostream(); <-- welcher stream is ri
 
Ich würde auch StringList.Text als String zu senden empfehlen. Wenn nämlich ein Stream über die Indys (wie etwa hier für eine Datei) gesendet wird, muss der erst in einen TIdVCLStream umgewandelt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:24 Uhr.

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