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