|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Michael JLI'ler
Anmeldedatum: 20.07.2002 Beiträge: 173 Wohnort: Münster / NRW Medaillen: Keine
|
Verfasst am: 23.05.2003, 15:01 Titel: Probleme bei Dateiarbeit |
|
|
Kann mir jemand sagen, warum das folgende kleine Programm (leider nicht kommentiert ) immer wieder fehler verursacht?
Code: |
#include <direct.h>
#include <io.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
bool Suchen(char* Pfad);
_finddata_t FileData;
char* Filter = "*.*";
void main()
{
Suchen("C:\\windows\\system\\catroot\\");
}
bool Suchen(char* Pfad)
{
long Handle = 0;
chdir(Pfad);
while(true)
{
if(Handle == 0)
{
Handle = _findfirst(Filter, &FileData);
}
else
{
if(_findnext(Handle, &FileData) == -1)
{
return true;
}
}
if(strcmp(FileData.name, ".") == 0 || strcmp(FileData.name, "..") == 0) continue;
printf(FileData.name);
printf("\n");
if(FileData.attrib & _A_SUBDIR)
{
char* TempString = new char(strlen(Pfad) + strlen(FileData.name) + 1);
strcpy(TempString, Pfad);
strcat(TempString, FileData.name);
strcat(TempString, "\\");
Suchen(TempString);
}
}
return true;
}
|
Also im Moment zeigt es nur den letzten dateinamen (ist bei mir so ein komischer ordner) nicht an, aber ich hatte auch schon fehler in den strcat-funktionen etc. irgendwas ist da jedenfalls nicht in ordnung!
PS.: Es scheint auch abzustürzen, wenn ich andere Platten, zb D:\ durchsuchen lasse, aber erst zu einem späteren zeitpunkt. stimmt da vielleicht irgendwas mit meinen pointern ned oder so?
PPS.: Jetzt hab ich mal 3 sachen probiert. einmal ist er abgeschmiert, nachdem er 2870 objekte durchgeackert hatte und einmal nach 2501 (jeweils andere verzeichnisse). Dafür hat er einen durchgang mit nur 802 objekten ohne fehler abgeschlossen _________________ Es geht auch ohne |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 23.05.2003, 17:12 Titel: |
|
|
Kontrolliere per Einzelschritt mal den Inhalt von TempString an markanten Stellen. (kurz vor dem Absturz und beim Absturz)
Ist es immer die gleiche Stelle, wo er abstürzt? (reproduzierbarer Fehler)
Haben die Verzeichnis/Dateinamen irgend welche sonderbaren Zeichen / Verwenden sie Unicode? (Ich verwende Verzeichnisse mit Japanischen Kanji-Schriftzeichen)
Schreibe das Programm doch mal auf die Benutzung von Unicode um.
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|