Textdatei auswählen
-
Hallo Forumsmitglieder,
ich hab mal ein kleines Problem und weiß nicht recht, wie ich es lösen kann.
Ich habe ein Stück Quellcode, womit ich Bitmap Dateien auswählen kann(CFileDialog) und dessen Pfad dann für den späteren gebrauch verwendet werden kann.//Filter für Diaolgfeld Öffnen erstellen static char BASED_CODE szFilter[] = "Bitmap-Dateien (*.bmp)|*.bmp||"; //Dialogfeld Öffnen erzeugen CFileDialog m_ldFile(TRUE, ".bmp", m_sBitmap, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); //Dialogfeld Öffnen anzeigen und Ergebnis übernehmen if(m_ldFile.DoModal() == IDOK) //Gewählten Dateinamen ermitteln m_sBitmap = m_ldFile.GetPathName();Nun mein Problem:
Wie kann ich den Quellcode so umstellen, dass er auschließig für Textdateien funktioniert.
Ich hab eine Variable "ifstream data", die dann nachher durch das Textfile streamt und dann spezielle Keywords raussucht.ifstream data; //Filter für Diaolgfeld Öffnen erstellen static char BASED_CODE szFilter[] = "Text-Dateien (*.txt)|*.txt||"; //Dialogfeld Öffnen erzeugen CFileDialog m_ldFile(TRUE, ".txt", data, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); //Dialogfeld Öffnen anzeigen und Ergebnis übernehmen if(m_ldFile.DoModal() == IDOK) { //Gewählten Dateinamen ermitteln data = m_ldFile.GetPathName();Vielen Dank für die Hilfe

-
Was meinst Du mit "ausschließlich" für Textdateien funktioniert. Du hast doch die Extension schon umgestellt.
Was der User Dir aber dort angibt ist sein Bier. Wenn Du eine EXE bekommst dann musst Du irgendwann halt sagen, dass Du "diese Datei nicht verstehst".
-
Ich hab das ganze ja selber geschrieben.
Mein Problem ist, dass ich folgende Fehlermeldungen bekomme und mit denen nicht viel anfangen kann.error C2664: 'CFileDialog::CFileDialog' : cannot convert parameter 3 from 'class std::basic_ifstream<char,struct std::char_traits<char> >' to 'const char *'
in dem CodestückCFileDialog m_ldFile(TRUE, ".txt", data, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class CString' (or there is no acceptable conversion)
in dem Codestück:
data = m_ldFile.GetPathName();
-
Da steht doch:
error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class CString' (or there is no acceptable conversion)Du weist einem ifstream einen CString zu, das kann ja nicht funktionieren, also:
//Filter für Diaolgfeld Öffnen erstellen static char BASED_CODE szFilter[] = "Text-Dateien (*.txt)|*.txt||"; //Dialogfeld Öffnen erzeugen CFileDialog m_ldFile(TRUE, ".txt", data, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); //Dialogfeld Öffnen anzeigen und Ergebnis übernehmen if(m_ldFile.DoModal() == IDOK) { { //Gewählten Dateinamen ermitteln ifstream data(m_ldFile.GetPathName()); .... }
-
Hat alles wunderbar geklappt.
Vielen Dank