000
13.11.2002, 08:12 Uhr
ulli
|
irgendwie hab ich in einer Routine totalen Müll gebaut, aber ich guck da immer drauf und denke: "is doch alles richtig" Irgendwie bin ich an dieser Stelle wohl betriebsblind *g* Compiliert und gelink wird alles ohne Fehler, aber zur Laufzeit funzt CreateFile() (Zeile 21) manchmal und manchmal nicht ???. Is fast so, als würde gewürfelt. Ausserdem er springt immer von Zeile 26 nach Zeile 21 zurück. Irgendwie alles merkwürdig.
Ich poste hier mal die Routine.
void KWizz::readInSol() 0{ 1 char theFtmFName[_MAX_PATH]; 2 char theFtmPathName[_MAX_PATH]; 3 char buffer[256]; 4 char * subStr; 5 bool ret; 6 int z; 7 DWORD readBytes; 8 HANDLE hFindFtmFile,hFtmFile; 9 WIN32_FIND_DATA fd; 10 SolutionStruc theSol; 11 12 memset(&theSol,'\0',sizeof(theSol)); 13 getMyPath(theFtmPathName); 14 wsprintf(theFtmFName,"%s..\\ftf\\*.ftm",theFtmPathName); 15 16 if(INVALID_HANDLE_VALUE == (hFindFtmFile = FindFirstFil(theFtmFName,&fd)) ) 17 return; 18 19 do{ 20 wsprintf(theFtmFName,"%s..\\ftf\\%s",theFtmPathName,fd.cFileName); 21 hFtmFile = CreateFile(theFtmFName,GENERIC_READ,FILE_SHARE_READ 22 ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); 23 if(hFtmFile == INVALID_HANDLE_VALUE) 24 break; 25 ret = ReadFile(hFtmFile,buffer,255,&readBytes,NULL); 26 CloseHandle(hFtmFile); 27 if(ret == false) 28 break; 29 if( (subStr = strstr(buffer,"#Description:")) ) 30 { 31 for(z=13;(subStr[z] != '\r') 32 && (subStr[z] != '\n') 33 && (z < 45) 34 && (subStr[z] != '\0') ; z++) 35 theSol.theSolName[z-13] = subStr[z]; 36 if( (z < 45) && (z > 18) ) 37 { 38 theSol.theSolName[z-13] = '\0'; 39 lstrcpy(theSol.theSolFile,theFtmFName); 40 tsol->add(&theSol); 41 } 42 } 43 }while( FindNextFile(hFindFtmFile,&fd) ); 44 FindClose(hFindFtmFile); 45 }
Schon mal im Voraus Danke für's "Draufgucken" Dieser Post wurde am 13.11.2002 um 08:14 Uhr von ulli editiert. |