Dateien lesen/schreiben.... generelle Frage. [Nächstes Problem :( ]



  • Hallo,

    ich habe mal eine generelle Frage zu obigem Thema.
    Szenario: Dialogbasierende Anwedung (exe) mit Haupt- und Unterdialogen.

    Wenn ich im Hauptdialog (hauptdlg.cpp) eine Datei mittel ifstream/ofstream
    lesen bzw. schreiben will ist das kein Thema.

    Der Code lautet so:

    void CMEDAKODlg::OnWritefile() 
    {
    
    	int var1 = 10;
    	int var2 = 20;
    
    	ofstream myFile;
    
    	myFile.open ("c:\\datei.txt");
    
    	// Daten schreiben
    	myFile << var1 << '\n';
    	myFile << var2 << '\n';
    	myFile << "ENDE" << endl;
    
    	// Datei schliessen
    	myFile.close();
    
    	MessageBox("Datei erfolgreich geschrieben in:\nc:\\datei.txt");
    
    }
    

    Der gleiche Code im Unterdialog (unterdlg.cpp) produziert dagegen folgende Fehlermeldung:

    *.cpp(56) : error C2065: 'ofstream' : nichtdeklarierter Bezeichner
    *.cpp(56) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'myFile'
    *.cpp(56) : error C2065: 'myFile' : nichtdeklarierter Bezeichner
    *.cpp(59) : error C2228: Der linke Teil von '.open' muss eine Klasse/Struktur/Union sein
    *.cpp(63) : error C2065: 'var1' : nichtdeklarierter Bezeichner
    *.cpp(63) : warning C4552: '<<' : Operator hat keine Auswirkungen; Operator mit Seiteneffekt erwartet
    *.cpp(64) : error C2065: 'var2' : nichtdeklarierter Bezeichner
    *.cpp(64) : warning C4552: '<<' : Operator hat keine Auswirkungen; Operator mit Seiteneffekt erwartet
    *.cpp(65) : error C2297: '<<' : Ungültig, da der rechte Operand vom Typ 'char [5]' ist
    *.cpp(65) : error C2065: 'endl' : nichtdeklarierter Bezeichner
    *.cpp(68) : error C2228: Der linke Teil von '.close' muss eine Klasse/Struktur/Union sein
    

    Die Sterne habe ich wegen des langen Ordnernamens eingefügt.

    Vielleicht erbarmt sich jemand und gibt mir einen Tipp. 🙂 Danke im voraus

    Gruss
    kk3003



  • Ich hatte

    #include <fstream>
    using namespace std;
    

    im Kopf vergessen.... wie peinlich. 🙂

    Gruss
    kk3003



  • Hi,

    nun das nächste Problem....

    Im Hauptdlg.cpp kann (ich doch nicht) wunderbar auf meine Variablen zugreifen, die dort deklariert und gefüllt werden.

    Aus dem Wert "1" wird "00C621DC" (ist ein CString).

    Im Unterdialog kommt gar keine Ausgabe. 😞

    Danke im voraus

    Gruss
    kk3003



  • Hmm, könntest du vllt nochmal ein bisschen genauer erläutern was du genau machen willst? Denn im Moment steh ich noch auf'm Schlauch.

    Willst du in deinem Unterdialog und Hauptdialog Variablen in Dateien speichern?
    Oder willst du einfach nur von deinem Unterdialog auf deinem Hauptdialog zugreifen ?

    Thx



  • Hi,

    ich möchte im Unterdialog [CSubDlg] über eine Funktion eine Textdatei [OnWriteData()] auf die Platte schreiben.

    Diese Textdatei muss Variablen aus dem Hauptdialog [CHauptDlg]enthalten.

    Gruss
    kk3003


Anmelden zum Antworten