MemoryStream in Variable/String speichern



  • Hallo,

    wie kann ich einen MemoryStream in eine Variable/String speichern?
    Also ich hole einen HTML Quelltext von einer Seite die ich gern Versteckt speichern will und nicht in einem Memo ablegen. Geht das Überhaupt? Hier mein Code:

    TMemoryStream *InStream = new TMemoryStream();
    
    IdHTTP1->Request->ContentType="text/html";
    
    IdHTTP1->Get("http://"+HOST+":"+PORT+"/LOGIN?nick="+Edit1->Text+"&password="+Edit2->Text+"", InStream);
    
    InStream->Position=0;
    
    Memo1->Lines->LoadFromStream(InStream);
    

    MFG Fregger



  • TStringList *List = new TStringList();
    List->LoadFromStream(InStream);
    

    Löschen nicht vergessen...



  • Hallo,
    danke Linea, mit Stringliste hatte ich es auch schon versucht gehabt, nur leider kann ich dann nicht die Stringlliste in einem Ansistring speichern.

    [C++ Fehler] Unit1.cpp(99): E2034 Konvertierung von 'TStringList *' nach 'AnsiString' nicht möglich
    

    Gibt es eine andere Möglichkeit?

    Hier nochmal mein Code mit der Stringliste:

    TMemoryStream *InStream = new TMemoryStream();
    
              IdHTTP1->Request->ContentType="text/html";
    
              IdHTTP1->Get("http://"+HOST+":"+PORT+"/LOGIN?nick="+Edit1->Text+"&password="+Edit2->Text+"", InStream);
    
              InStream->Position=0;
              TStringList *List = new TStringList();
              List->LoadFromStream(InStream);
    
              delete InStream;
    
              AnsiString Text = List;
    

    MFG Fregger



  • Schau dir doch mal die Eigenschaften von TStringList in der Hilfe an. Da gibt es z.Bsp. TStringList::Text

    AnsiString Text = List->Text;
    

    @Linnea
    Ich nehme für solche lokal verwendeten Pointer boost::scoped_ptr. Da kann ich dann auf das delete verzichten, da es ja automatisch beim Verlassen des Scope erfolgt.



  • Hehe danke, funktioniert jetzt 🙂

    MFG Fregger



  • ...
    List->Text = IdHTTP->Get(URL);
    ...
    

Anmelden zum Antworten