000
02.10.2007, 17:20 Uhr
WindDancer1
|
Hi Leute ,
bis vor kurzem habe ich Fehler noch über Rückgabewerte behndelt. Nun möchte ich das ganze über die effektiveren MFC-Exceptions machen.
Ich habe hier eine Funktion in der ich per Standarddialog eine Datei öffne, wenn ich nun von Hand den Namen einer Datei eingebe die nicht existiert möchte ich diesen Fehler abfangen ! Ich sitz schon den ganzen Tag dran aber es klappt einfach nicht und google liefert auch nichts brauchbares.
Hier der Code:
C/C++ Code:
C++: |
void CMokkaDoc::OnFileOpen() { CFileException fe;
iZaehlerNext = 0; // Wenn File öffnen Dlg geöffnet wird dann FileZähler auf 0 setzen char strFilter[] = {"NFO-Files (*.nfo)|*.nfo|*.nfo||"}; CFileDialog fileDlg(TRUE,".nfo",NULL,0,strFilter); CFile file; // Objekt der Klasse CFile erstellen
if(fileDlg.DoModal()==IDOK) // Dialogfeld öffnen und Ergebnis auffangen { m_strDateiname = fileDlg.GetFileName(); // Dateinamen des gewählten Files ermitteln m_srtFilePathName = fileDlg.GetPathName(); // DateiPfad des gewählten Files ermitteln m_strFileExtension = fileDlg.GetFileExt (); // DateiEndung des gewählten Files ermitteln
try { file.Open(fileDlg.GetFileName(), file.modeRead,&fe);// Ausgewählte Datei öffnen str = new TCHAR[(file.GetLength())+1]; // TChar Array auf Heap schieben damit es dynamisch wird str[(file.GetLength())] = '\0'; // TChar Array mit 0 terminieren file.Read(str, file.GetLength()); // File lesen und Array str mit Werten füllen } catch(CFileException *pe) {
MessageBox(0,"Fehler","Fehler",MB_OK); } } cstrAusgabe = str; // Variable für die Ausgabe mit Inhalt(str) der Datei füllen file.Close(); // File wieder schließen
UpdateAllViews (NULL); // View Aktualisieren } C/C++ Code:
void CMokkaDoc::OnFileOpen() { CFileException fe;
iZaehlerNext = 0; // Wenn File öffnen Dlg geöffnet wird dann FileZähler auf 0 setzen char strFilter[] = {"NFO-Files (*.nfo)|*.nfo|*.nfo||"}; CFileDialog fileDlg(TRUE,".nfo",NULL,0,strFilter); CFile file; // Objekt der Klasse CFile erstellen if(fileDlg.DoModal()==IDOK) // Dialogfeld öffnen und Ergebnis auffangen { m_strDateiname = fileDlg.GetFileName(); // Dateinamen des gewählten Files ermitteln m_srtFilePathName = fileDlg.GetPathName(); // DateiPfad des gewählten Files ermitteln m_strFileExtension = fileDlg.GetFileExt (); // DateiEndung des gewählten Files ermitteln try { file.Open(fileDlg.GetFileName(), file.modeRead,&fe);// Ausgewählte Datei öffnen str = new TCHAR[(file.GetLength())+1]; // TChar Array auf Heap schieben damit es dynamisch wird str[(file.GetLength())] = '\0'; // TChar Array mit 0 terminieren file.Read(str, file.GetLength()); // File lesen und Array str mit Werten füllen } catch(CFileException *pe) { MessageBox(0,"Fehler","Fehler",MB_OK); } } cstrAusgabe = str; // Variable für die Ausgabe mit Inhalt(str) der Datei füllen file.Close(); // File wieder schließen
UpdateAllViews (NULL); // View Aktualisieren }
|
wäre super wenn Ihr mir helfen könntet ?!
Danke vorab WinDDancer Dieser Post wurde am 02.10.2007 um 17:40 Uhr von FloSoft editiert. |