CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Récursivité

Tav
Tav
Niveau 5
04 juin 2005 à 13:11:56

Salut,
j´ai fait un programme pour supprimer des disques durs d´un ordinateur certains types de fichiers.
Malheureusement ca ne marche pas et j´ai toujors pas compris pourquoi ( sad) .

J´ai débuté avec un code récursif que j´avais utilisé avant et qui marchait bien:

http://rafb.net/paste/results/90HGur98.html

pour arriver à plus ou moins ceci ( que j´ai vu et revu plusieurs fois) :

http://rafb.net/paste/results/ULeQ2t40.html

Qu´est-ce qui fait que sa ne marche pas?
Quand je compile, sa m´affiche que le HANDLE pour ClearDirectory est invalide ( INVALID_HANDLE_VALUE) et je n´arrive pas à trouver pourquoi.
Merci de m´aider...

dnob700
dnob700
Niveau 10
04 juin 2005 à 15:22:14

quand tu compile ou quand tu exécute ton programme ça t´affiche ce message ?

Tav
Tav
Niveau 5
04 juin 2005 à 15:49:00

Suit le chemin logique du programme:

-Appel de la fonction pour les fichier lisezmoi.txt
-Trouve un nouveau disque dur
-Appel de la fonction ClearDirectory ( la récursivité est dans cette fonction et une autre appellée DelAllFiles) et la je déclare la recherche tranquillement, mais qqchose foire et du coup la recherche me retourne un Handle invalide et j´ai prevu dans mon programme que si sa foirait à ce niveau là j´affichais ce message pour m´indiquer d´où viens le problème.

Tav
Tav
Niveau 5
04 juin 2005 à 15:49:58

Pardon, j´ai pas totalement repondu à la question:
c´est quand j´execute le programme oui.

dnob700
dnob700
Niveau 10
04 juin 2005 à 16:39:32

t´es sur que le invalide handle ça veut pas dire que la recherche à foiré tout simplement ?

sinon utilise la fonction getlasterror pour avoir plus d´information.
Ou tout simplement affiche les sznamefile et szdatad qui ont été utilisé et tu trouvera peut-être ton erreur.

lag-it
lag-it
Niveau 10
04 juin 2005 à 17:05:32

N´hésotes pas à utiliser le debugger fourni avec ton IDE, tu verras tout de suite d´ou vient le problème :ok: . ..

Tav
Tav
Niveau 5
04 juin 2005 à 19:54:56

J´ai un super ecran bleu quand j´utilise le debogeur pas à pas . .. :-(

dnob700
dnob700
Niveau 10
04 juin 2005 à 20:07:51

ben dans ce cas là utilise des printf partout pour svoir avec quels arguments la fonction est appelé et surtout ceux qui font planté la fonction. Tu trouvera certainement la cause de ton problème.

lag-it
lag-it
Niveau 10
04 juin 2005 à 22:26:22

Tu peux aussi créer un système de log très basic avec un simple FILE handle et 2/3 fprintf de ci de là...

Tu programmes avec quel IDE ?

Tav
Tav
Niveau 5
04 juin 2005 à 23:23:33

Dev C++ 4.9.9.2 . ..
Mais j´ai d´jà mis des tas de cout et l´erreur viens du fait que mon handle de recherche foire...

dnob700
dnob700
Niveau 10
04 juin 2005 à 23:27:48

ça veut dire quoi ça : le handle de recherche foire ? rien. Si ça marche pas c´est que les paramètre que tu passe à la fonction de recherche sont mauvais. Donc tu affiche ces paramètres et tu sera déjà sur la bonne voies.

Tav
Tav
Niveau 5
05 juin 2005 à 11:00:09

Pour ce code:
http://rafb.net/paste/results/G7Yv1l93.html

voila le résultat ( je n´ai fait qu´ajouter des informations sur ce que je passe a FindFirstFile) :

http://www.imageshack.us][IMG]http://img239.echo.cx/img239/7189/cleartempfiles0st.jpg

Tav
Tav
Niveau 5
05 juin 2005 à 11:01:13

Pardon, voila la capture d´écran:

http://img239.echo.cx/img239/7189/cleartempfiles0st.jpg

dnob700
dnob700
Niveau 10
05 juin 2005 à 15:03:05

donc ton problème n´a rien a voir avec la récursion que tu fait puice que tu ne l´entamme même pas.

ben il te reste plus qu´a appeler getlasterror pour savori ce qui ne vas pas.

Tav
Tav
Niveau 5
05 juin 2005 à 16:19:31

Si je met ceci:

cout<<GetLastError()<<endl;

sa m´affiche:

0

:-(

Tav
Tav
Niveau 5
26 juin 2005 à 20:58:57

http://rafb.net/paste/results/knhQhf68.html

Voilà, j´ai un petit peu avancé dans ma récursivité depuis tout ce temps...
Mais sa ne supprime que dans le premier niveau de dossier. C´est-à-dire que pour 4 dossiers qui sont à la suite ( ex: E:\Test\Recursivité\Niveau3\Niveau4) bah le fichier lisezmoi.txt ne sera pas supprimé . ..
Pourtant techniquement c´est sensé marcher...:-(((
Vous voyez l´erreur?

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment