CFile::Read liefert Laufzeitfehler
-
Hi Leute!
Bei folgendem Quellcode bekomme ich in Bedingung der Whileschleife nen Laufzeitfehler. Im Debugger zeigt er auf ein stück Quellcode in filecore.cpp.
[cpp] CFile file; CString gesamt = ""; char temp[20] = ""; int count = 10; file.Open("config.con",CFile::shareDenyRead | CFile::modeRead ,0); while(file.Read(temp, count) != 0) { gesamt += temp; } file.Close(); [/cpp]Es hängt an einem Assert, wo auf VALID_HANDLE getestet wird, ich erkenne meinen Fehler aber nicht.
Danke
Ranger
-
Hi,
du musst schon einen Mechanismus einbauen, der erkennt, ob die Datei auch wirklich geöffnet wurde (CFile::Open liefert einen BOOL Wert zurück), denn es kann ja sein, dass die Datei gar nicht existiert.
Außerdem solltest du
while(file.Read(temp, count) != 0) { gesamt += temp; }in
while(int nBytesRead=file.Read(temp, count) != 0) { temp[nBytesRead] = '\0'; gesamt += temp; }Sonst steht in deinem String nur Müll

Grüße Rapha