bei CFile::Read - Ì "Phänomen"



  • Hi,
    ich verwende folgenden Code:

    CInternetSession session;
    CHttpConnection *pConnect = session.GetHttpConnection ( m_strServer);
    CHttpFile *file = pConnect->OpenRequest( 0, m_strFile);   
    file->SendRequest();
    char ch[1025];
    CString strHtml;
    while( file->Read( ch, 1024))
    {
       strHtml += ch;
    }
    return strHtml;
    

    um eine Html Datei aus dem Internet herunterzuladen.
    Der html quellcode wird auf richtig heruntergeladen, doch werden am Ende des Codes ziemlich viele "Ì"s und ein "Pw" angehängt.

    Könnt ihr mir helfen?

    mfg. Etrin
    danke schonmal im Vorraus



  • [edit]
    alles nochmal umgeschrieben 🙂
    [/edit]

    CHttpFile::Read() liest rohe bytes ein, keine strings. strings müssen immer mit einem nullzeichen '\0' abgeschlossen werden.

    nach jedem Read musst du also ein nullzeichen am ende des puffers einfügen.
    CHttpFile::Read() gibt dir die eingelesenen bytes zurück ... sind diese != 1024 ist das ende des files erreicht.

    Beispiel:

    ...
    char ch[1025];
    bool bRun = true;
    while( bRun )
    {
        int count = file->Read( ch, 1024);
        ch[count] = '\0';
    
        if( count != 1024 )
            bRun = false;
    
        strHtml += ch;
    }
    ...
    

    grüsse

    [ Dieser Beitrag wurde am 16.03.2003 um 20:07 Uhr von soUrcerer editiert. ]



  • Vielen Dank für deine Antwort
    ist mir jetzt klar

    Grüße Etrin


Anmelden zum Antworten