liste de fichiers répondant a une expression régulière

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

liste de fichiers répondant a une expression régulière

Message par Thyphoon »

Voici une petite procédure sans prétention que j'utilise pour récupérer une liste de fichiers/répertoires répondant a une expression régulière
le "*" de ExamineDirectory() étant parfois un peu léger.
Voilà si vous avez des idées pour améliorer ce code n’hésitez pas. Et comme d'habitude vous pouvez l'utiliser et le modifier comme bon vous semble.

Code : Tout sélectionner

;####################
;#   getFilesList   #
;####################
;add to a string list all files/folders who match the name Schema
;*files.s() : pointer to a string list
;path       : path where search name schema
;NameSchema : use pcre reg to define Schema name. ex:^fanArt-[0-9]*(\.jpg|\.png)
;entryType  : choose files(#getFilesType_Files) or folder(#getFilesType_Folders) or files and folders (#getFilesType_Files|#getFilesType_Folders)

#getFilesType_Folders=1
#getFilesType_Files=2

Procedure getFilesList(List *files.s(),path.s,NameSchema.s,entryType.b=#getFilesType_Files)
  If CreateRegularExpression(0, NameSchema.s)
    If ExamineDirectory(0, path, "*.*")  
      While NextDirectoryEntry(0)
        If (DirectoryEntryType(0) = #PB_DirectoryEntry_File And (entryType & #getFilesType_Files)) Or (DirectoryEntryType(0) = #PB_DirectoryEntry_Directory And (entryType & #getFilesType_Folders))
          If MatchRegularExpression(0, DirectoryEntryName(0))
            AddElement(*files())
            *files()=path+"\"+DirectoryEntryName(0)
            Debug *files()
          EndIf
        
        EndIf
      Wend
      FinishDirectory(0)
    EndIf
    FreeRegularExpression(0)
  Else
    Debug RegularExpressionError()  
    
  EndIf
EndProcedure

NewList files.s()
getFilesList(@files(),"C:\windows","^w.*\.exe",#getFilesType_Files|#getFilesType_Folders)

Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: liste de fichiers répondant a une expression régulière

Message par venom »

Sympa cette procédure.
Merci Thyphoon. 8)






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: liste de fichiers répondant a une expression régulière

Message par Thyphoon »

venom a écrit :Sympa cette procédure.
Merci Thyphoon. 8)
de rien :mrgreen:
Répondre