JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=fe9936ebe323f2d8840b183acc28f099Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Probleme bei Dateiarbeit

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
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

BeitragVerfasst am: 23.05.2003, 16:01    Titel: Probleme bei Dateiarbeit Antworten mit Zitat

Kann mir jemand sagen, warum das folgende kleine Programm (leider nicht kommentiert Sad ) 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 Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 23.05.2003, 18:12    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum