Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1044 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [delphi] listing de fichier et sous-repertoires sans recursif ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[delphi] listing de fichier et sous-repertoires sans recursif ?

n°626310
_oxyd_
Posté le 30-01-2004 à 16:52:09  profilanswer
 

bonjour a tous !
 
je cherche a lister tous les fichier se trouvant dans un repertoire ainsi que dans les sous-rep de celui-ci.
Pour ce qui est de lister dans le repertoire racine, pas de soucis, en revanche je cherche une methode non recursive pour parcourir tous les autres rep (en gros une sorte de parcours en profondeur main gauche sans recursif)
 
quelqu'un peut il me mettre sur la voie ? :)
merci d'avance

mood
Publicité
Posté le 30-01-2004 à 16:52:09  profilanswer
 

n°626322
antp
Super Administrateur
Champion des excuses bidons
Posté le 30-01-2004 à 17:01:40  profilanswer
 

Pourquoi pas récursif ? C'est marrant le récursif :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°626347
_oxyd_
Posté le 30-01-2004 à 17:49:22  profilanswer
 

bah oui, mais imagine le cas ou on dois lister un rep comprenant 100 sous-rep qui comprennent chacun 100 sous-rep sur 5 niveaux.Le recursif ca deviens dans ce cas la un peu violent :)
 
il doit bien y avoir une methode `plus jolie' :D


Message édité par _oxyd_ le 30-01-2004 à 17:49:53
n°626353
antp
Super Administrateur
Champion des excuses bidons
Posté le 30-01-2004 à 18:02:07  profilanswer
 

bah tes 100 sous-rep seront pas mis sur la pile vu qu'ils sont au même niveau :p
Et vu la limite à 260 caractères d'un chemin, je ne pense pas que ça pose problème


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°626356
_oxyd_
Posté le 30-01-2004 à 18:09:58  profilanswer
 

je vais essayer avec alors :)
 
mais par simple curiosité, y a pas une autre facon avec une complexité un peu moins haute.
merci ;)

n°626374
Tentacle
Posté le 30-01-2004 à 18:27:45  profilanswer
 

Je l'ai uniquement fait par récurrence, mais peut-être pourrais-tu utiliser une pile où tu mets les répertoires que tu trouves pendant le listing d'un répertoire X. Et quand tu as finis ce listing, tu chopes le dernier répertoire dans la pile ( pourquoi le dernier ? parce que je pense que sinon tu auras une pile énorme si tu ne t'occupes pas d'une branche à fond) et tu refais la même chose

n°626408
_oxyd_
Posté le 30-01-2004 à 19:09:47  profilanswer
 

je pense que c'est une bonne solution.
d'ailleurs c'est bien ce que fais delphi lors d'un appel recursif, il empile automatiquement.
le faire `manuellement' peu etre sympa, je vais essayer :D
 
merci a vous


Message édité par _oxyd_ le 30-01-2004 à 19:10:19
n°626428
antp
Super Administrateur
Champion des excuses bidons
Posté le 30-01-2004 à 19:27:29  profilanswer
 

_oxyd_ a écrit :


d'ailleurs c'est bien ce que fais delphi lors d'un appel recursif, il empile automatiquement.


 
C'est le principe de la récursivité, mais c'est pas la même pile.
Pour les fonctions cette pile a une taille limitée.
Alors que si tu mets tes dossiers dans une liste (la pile dont parle Tentacle j'imagine), la seule limite est la taille de la mémoire du PC


Message édité par antp le 30-01-2004 à 19:27:50

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°626471
Tentacle
Posté le 30-01-2004 à 20:39:06  profilanswer
 

D'ailleurs elle est limitée à combien cette pile en général ? (je suppose que ça ne doit pas être partout pareil)

n°626472
*syl*
--> []
Posté le 30-01-2004 à 20:41:42  profilanswer
 

1Mo max par défaut me semble

mood
Publicité
Posté le 30-01-2004 à 20:41:42  profilanswer
 

n°626587
gligli
Posté le 30-01-2004 à 22:15:35  profilanswer
 

si tu ne te soucies pas de l'ordre dans lequel les répertoires vont être listés, il y a moyen de le faire totalement a plat et sans pile avec un truc du genre:
 
i:=0;
repeat
 if FileList[i].IsDir then
 begin
   // ajouter a FileList le contenu du rep FileList[i]
 end;
 Inc(i);
until i=FileList.Count-1;
 
en mettant dans FileList[0] le rep racine


Message édité par gligli le 30-01-2004 à 22:22:08

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [delphi] listing de fichier et sous-repertoires sans recursif ?

 

Sujets relatifs
[Delphi] Aligner des TFrame ?[DELPHI] Boite de dialogue personnalisée ???
Problème d'ouverture de fichierComment copier un fichier > 32 Ko ds une BD SQL ???
[JAVA] récupérer efficacement des sequences dans un fichier texte[JAVA] éliminer la redondance dans un fichier texte !
Ouvrir un user form à l'ouverture d'un fichier excelcomment copier ou supprimer un fichier sur le disque dur en c++ ?
Lancement dynamique d'une DLL sous Delphi[VB] Problème avec la lecture d'un fichier
Plus de sujets relatifs à : [delphi] listing de fichier et sous-repertoires sans recursif ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR