Bonjour !
tout est dans le sujet !
C'est a dire faire une liste de tous les "mp3" d'un repertoire mais
aussi des sous repertoires
J'aimerai avoir le meme resultat avec les commandes Examinedirectory
NextDirectoryEntry() DirectoryEntryName() etc ...
Ce n'est pas aussi simple que ça en a l'air !
on ne connait pas la "profondeur" des repertoire a l'avance !
je ne vois pas comment construire l'algo pour faire cette manip
sans doute l'utilisation de structure recurcive !
Mais je n'ais pas envie de reinventer la roue
si vous avez du code !
Merci
Faire un " DIR *.mp3 /B /S > listmp3.txt" en pu
-
- Messages : 40
- Inscription : mar. 23/mars/2004 10:23
Code trouvé sur CodeArchiv:
Chris 
Code : Tout sélectionner
; English forum: http://www.curvesoftware.co.uk/purebasic/topic.asp?TOPIC_ID=5904
; Author: Sebi
; Date: 18. April 2003
Procedure.s ListFiles(directory.s , filename.s, extension.s , directoryid.l )
If Right(directory,1)<>"\"
directory+"\"
EndIf
ExamineDirectory(directoryid,directory,"*.*")
dirid=NextDirectoryEntry()
While dirid
Select dirid
Case 1
file.s=DirectoryEntryName()
this_extension.s=LCase(GetExtensionPart(file))
this_filename.s=LCase(Left(file,Len(file)-Len(this_extension)))
If Len(this_extension)
this_filename=Left(this_filename,Len(this_filename)-1)
EndIf
If this_extension=extension Or extension="*"
If this_filename=filename Or filename="*"
file.s=directory+DirectoryEntryName()
;file contains the full path and filename
;you must insert here what to do with the file
Debug file
EndIf
EndIf
Case 2
If DirectoryEntryName()<>"." And DirectoryEntryName()<>".."
ListFiles(directory+DirectoryEntryName()+"\",filename,extension,directoryid+1)
UseDirectory(directoryid)
EndIf
EndSelect
dirid=NextDirectoryEntry()
Wend
ProcedureReturn ""
EndProcedure
Debug "all txt-files in c:\windows\"
ListFiles("C:\Windows","*","txt",0) ; the last parameter should be zero
Debug ""

-
- Messages : 40
- Inscription : mar. 23/mars/2004 10:23
Merci
je n'avais pas assez chercher j'ais trouver la meme source .
C'est bien une procedure recurcive !
Merci encore .
la prochaine fois je ferai tourner 7 fois google
avant de poster une question !
C'est bien une procedure recurcive !
Merci encore .
la prochaine fois je ferai tourner 7 fois google
avant de poster une question !
C'est un bien beau bout de code !
Notes pour ceux que la construction de cette procédure pourrait intriguer :
La récursivité, c'est quand une procédure s'appelle elle-même. Le problème des dossiers qui peuvent contenir des dossiers qui peuvent contenir des dossiers... etc... est un très bon exemple de cas compliqué de programme pour lequel l'utilisation de la récursivité est intéressante.
Pour ceux qui auraient peur de la récursivité (qui implique des règles de programmation assez strictes), j'utilise parfois une petite combine logique qui arrive au même résultat :
Notes pour ceux que la construction de cette procédure pourrait intriguer :
La récursivité, c'est quand une procédure s'appelle elle-même. Le problème des dossiers qui peuvent contenir des dossiers qui peuvent contenir des dossiers... etc... est un très bon exemple de cas compliqué de programme pour lequel l'utilisation de la récursivité est intéressante.
Pour ceux qui auraient peur de la récursivité (qui implique des règles de programmation assez strictes), j'utilise parfois une petite combine logique qui arrive au même résultat :
Code : Tout sélectionner
cont=1
While cont
cont = 0
For i =1 to x
If Condition
; action a effectuer
cont = 1 ; si la condition a été rencontrée, on refait la boucle
EndIf
Next
Wend
Tout obstacle est un point d'appui potentiel.
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm