in datei schreiben problem



  • Hallo Leute,
    hab nen komisches problem! Ich nutzte folgenden Code um aus einem Lsitenfeld in eine TXT DAtei zu schreiben:

    CString write;
    int x;
    x = m_log.GetCount();   //Zählt wieviel Einträge vorhanden sind
    FILE  *datei;
    datei=fopen(ort,"w+");  //ort enthält die Pfadangabe
    for(int y=0;y<x;y++)
    {
        m_log.GetText(y,write);
        fprintf(datei,"%s",write);
        fprintf(datei,"\n");
    }
    fclose(datei);
    MessageBox("Log Datei erfolgreich geschrieben","Erledigt",MB_OK);
    

    Nun, das funzt auch wunderbar, aber nur solange ich das in meinem Hauptfenster laufen lasse (Dialogbasierende Anwendung)
    Soll bald ich das in einem neu erstellen Fenster laufen lassen (mit DoModal() aufgerufen) bekomme ich einen Fehler wenn ich es ausführe (nicht beim Kompilier) Natürlich sind die Wert auf den Dialog angepasst worden.....Die Fehlermeldung ist irgendwas mit speicherverweise und read konnte nicht ausgeführt werden 😕

    Vielen Dank schonmal



  • Probiers mal mit CStdioFile.



  • haste gerade mal ne erklärung dafür 😉 thx
    wäre supi



  • CStdioFile output; 
        CString outpfad = "lol.txt"; //Ausgabepfad
        output.Open(outpfad,CFile::modeWrite | CFile::modeCreate,NULL); //Datei erstellen und öffnen
    
        output.WriteString(m_strVerText); //String in die Datei Schreiben
    
        output.Close(); //Datei schließen
    


  • Mhhh...ich denke das würde funzen, nur leider bekomme ich da auch ne Meldung:

    Fehler in Anwendung
    Die Anweisung in"0x778821e1" verweist auf Speicher in "0x0000000034".Der Vorgang "read" konnte nicht auf dem Speicher durchgeführt werden.

    GRml..... was ist das fürn fuck??
    Hier der Code

    int x;
    CString write;
    x = m_complist.GetCount();
    CStdioFile output; 
    CString outpfad = pfad;  //Ausgabepfad
    output.Open(outpfad,CFile::modeWrite | CFile::modeCreate,NULL); //Datei erstellen und öffnen
    for(int y=0;y<x;y++)
    {
        m_complist.GetText(y,write);
        output.WriteString(write); //String in die Datei Schreiben
        output.WriteString("\n");
    }
    output.Close(); //Datei schließen
    

    mhhhhh? 😕



  • ich kenne mich mit dem debugger leider nicht so aus!
    wenn ich es debugge, kommt aber an folgendem stück code dieser gelbe pfeil:

    void CStdioFile::WriteString(LPCTSTR lpsz)
    {
        ASSERT(lpsz != NULL);
        ASSERT(m_pStream != NULL);  //Hier steht der Pfeil vor
    
        if (_fputts(lpsz, m_pStream) == _TEOF)
            AfxThrowFileException(CFileException::diskFull, _doserrno, m_strFileName);
    }
    


  • ARGS , habs gefunden...war nen schusseligkeitsproblem.. 😃
    läuft aber jetzt..*g*


Anmelden zum Antworten