Datei öffnen und CStdioFile problem



  • hi ich habe ein prog gecoded womit man eine datei öffnen kann und diese dann der name+pfad der datei in einer datei gespeichert werden soll

    aber wenn ich jetzt mit meinem datei öffnen dialog die datei auswählen und dann meine speicher funktion starte schreibt er nichts in die datei 😕 und gibt auch keine fehler aus
    hier ist code:

    void INILoaderDlg::OnBnClickedButton4()
    {
    	UpdateData(true);
    	CFileDialog fileDialog(true, NULL, NULL, OFN_OVERWRITEPROMPT | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_NOLONGNAMES, ("INI-Files (*.ini)|*.ini|All Files (*.*)|*.*|"), NULL);
    	fileDialog.m_ofn.lpstrTitle = ("Choose your File you want to laod with the Loader");
    	if (IDOK == fileDialog.DoModal())
    	{
    		POSITION pos = fileDialog.GetStartPosition();
    		while (pos != NULL)
    		{
    			inifile="\"";
    			inifile = fileDialog.GetNextPathName(pos);
    			inifile+="\"";
    		}
    	}
    	UpdateData(false);
    }
    

    und jetzt der speicher code

    void CGCLoaderDlg::OnBnClickedButton1()// SAVE
    {CStdioFile config1;
    	UpdateData(true);
    	config1.Open("config.ini",CFile::modeCreate|CFile::modeWrite|CFile::modeRead,NULL);
    
    			//varis schreiben
    	config1.WriteString(inifile);
    
    	config1.Close();		//file schliessen
    
    }
    


  • Servus,

    config1.Open("config.ini",CFile::modeCreate|CFile::modeWrite|CFile::modeRead,NULL);
    
    /*erstmal brauchst du kein "modeRead" nochmal zu schreiben. Es wird ja nur geschrieben nicht gelesen. Zum Zweiten wohin soll er denn die Datei speichern??? Normalerweise speichert er die Datei in das zuletzt geöffnete Verzeichnis d.h. hast du vorher mit deinem filedialog "C:\Paul\Franz\Joseph" geöffnet dann schreibt er auch die Datei wieder dorthin. Wenn das so sein soll ok. 
    Du kannst ja auch keinen Fehler direkt angezeigt bekommen wenn du ihn nicht explizit abfragst. Das machst du z.B. mit GetLastError().
    
    config1.Open("config.ini",CFile::modeCreate|CFile::modeWrite|CFile::modeRead,NULL);
    DWORD dwFehler = GetLastError();
    
    dann den Wert gucken der in dwFehler steht und in der Hilfe unter GetLastError suchen. Darunter gibs eine SystemFehlerCode Tabelle. Oder Anders:
    
    CFileException eFile;
    
    config1.Open("config.ini",CFile::modeCreate|CFile::modeWrite|CFile::modeRead,>>>> &eFile <<<);
    
    dann gucken was in &eFile drin steht. Damit bekommst du den gleichen Fehlercode wie mit GetLastError(). */
    

    guck mal nach was der ausspuckt. Vielleicht ist nichts da zum schreiben. Könnte aber auch schon an modeRead gelegen haben.

    Gruss
    Hellsgore


Anmelden zum Antworten