Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » Lister le contenu de plusieurs répertoires avec la fonction PB DirList

#1 18-06-2009 12:09:04

sylvm1  
Membre Geek
Date d'inscription: 03-09-2008
Messages: 40
Pépites: 198
Banque: 0

Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Bonjour,

La fonction DirList permet de lister dans une datawindow le contenu d'un répertoire.

Est-il possible avec cette même fonction de lister le contenu de plusieurs répertorie dans la même datawindow?

si non, existe une autre fonction Pb ou manière de faire qui permettrai de répondre à mon besoin?

Par avance merci et bonne journée

Hors ligne

 

#2 19-06-2009 10:28:46

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Bonjour,

Je suppose que tu ne parles pas de la méthode Dirlist d'une datawindow, mais de la méthode DirList d'un contrôle ListBox.

Il te suffit de récupérer le contenu d'un répertoire dans un premier contrôle Listbox (masqué) et recopier le contenu récupérer dans une autre ListBox (visible).

Ensuite, tu fais un nouveau DirList d'un autre répertoire dans la ListBox cachée et tu recopies le contenu dans la ListBox visible ....

Hors ligne

 

#3 19-06-2009 10:38:55

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

ou alors utilise les fonctions de l'API : [SOURCE] Liste des fichiers d'un dossier avec ou sans ListBox


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 19-06-2009 12:09:21

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

erasorz gagne un Russe Blanc pour sa réponse ;-)


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#5 19-06-2009 12:11:02

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

rincevent a écrit:

erasorz gagne un Russe Blanc pour sa réponse ;-)



où est le pognon lebowski ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 19-06-2009 12:30:29

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

#7 19-06-2009 12:48:49

sylvm1  
Membre Geek
Date d'inscription: 03-09-2008
Messages: 40
Pépites: 198
Banque: 0

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Ok merci à tous.
Je vais étudier ça.

Hors ligne

 

#8 19-06-2009 12:53:11

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

http://img230.imageshack.us/img230/6492/whiterussian015934908.jpg


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#9 21-06-2009 18:35:21

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

sylvm1 a écrit:

Ok merci à tous.
Je vais étudier ça.

alors quels sont les résultats de ton étude approfondie sur le russe blanc ? des conclusions ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#10 23-06-2009 06:42:56

sylvm1  
Membre Geek
Date d'inscription: 03-09-2008
Messages: 40
Pépites: 198
Banque: 0

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Désolé pas encore eu le temps de regarder.
Comme vous avez dû le voir j'ai entre temps poster 2 autres messages dans une autre catégorie.
Et oui on gère les problème au plus pressé

Hors ligne

 

#11 23-12-2010 10:55:03

raubry  
Membre Geek
Date d'inscription: 16-12-2009
Messages: 26
Pépites: 141
Banque: 0

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Bonjour, moi je cherche a enregistrer le nom de ces fichier dans une variable tableau du style ls_fichier[]

Cordialement

Hors ligne

 

#12 23-12-2010 11:03:41

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

raubry a écrit:

Bonjour, moi je cherche a enregistrer le nom de ces fichier dans une variable tableau du style ls_fichier[]

Cordialement

Bonjour -> http://pbadonf.fr/forum/viewtopic.php?id=277


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#13 23-12-2010 14:31:49

raubry  
Membre Geek
Date d'inscription: 16-12-2009
Messages: 26
Pépites: 141
Banque: 0

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Merci de ton aide, j'étais déja parti sur ce post avec l'API windows par contre il faut rajouter un alias pour qu'il soit reconnu sinon il retourne rien et sort de la boucle.

Code: pb

Function Long FindFirstFile( Ref String filename, Ref os_finddata findfiledata ) Library "KERNEL32.DLL" ALIAS FOR "FindFirstFileA;ansi"
Function Boolean FindNextFile( Long handle, Ref os_finddata findfiledata ) Library "KERNEL32.DLL" ALIAS FOR "FindNextFileA;ansi"
Function Boolean FindClose( Long handle ) Library "KERNEL32.DLL"

ex : Library "KERNEL32.DLL"  ALIAS FOR "FindFirstFileA;ansi"

Dernière modification par raubry (23-12-2010 14:33:47)

Hors ligne

 

#14 20-11-2012 10:08:04

FDEC  
Membre
Date d'inscription: 13-11-2012
Messages: 2
Pépites: 13
Banque: 0

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Voici une petite fonction qui permet de récupérer tous les fichier d'un répertoire et de ses sous répertoires

Code: pb

Long ll_cnt,ll_temp
str_files lstr_parms,lstr_temp
OLEObject obj_shell, obj_folder, obj_items, obj_item

IF DirectoryExists( as_folder ) THEN
    //initiate the shell object
    obj_shell = CREATE OLEObject
    obj_shell.ConnectToNewObject( 'shell.application' )

    IF IsValid( obj_shell ) THEN
        //assign folder object
        obj_folder = obj_shell.NameSpace( as_folder )
        
        IF IsValid( obj_folder ) THEN
            //assign objects from that folder
            obj_items = obj_folder.Items
            
            IF IsValid( obj_items ) THEN
                //loop through items (zero-indexed)
                FOR ll_cnt = 0 TO obj_items.Count
        //assign individual item
          obj_item = obj_items.Item( ll_cnt )
      IF IsValid( obj_item ) THEN
        IF obj_item.IsFolder THEN
          //Recursive Functions calls
          lstr_temp = This._GetFiles( obj_item.Path)
          FOR ll_temp = 1 TO UpperBound( lstr_temp.as_file )
            //add to list
            lstr_parms.as_file[ UpperBound( lstr_parms.as_file ) + 1 ] = lstr_temp.as_file[ ll_temp ]
          NEXT      
        Else
          //add to list
          lstr_parms.as_file[ UpperBound( lstr_parms.as_file ) + 1 ] = obj_item.Path
         End if
      END IF          
                NEXT
            END IF
        END IF
    END IF
END IF

//clear memory
DESTROY obj_shell
DESTROY obj_folder
DESTROY obj_items
DESTROY obj_item

RETURN lstr_parms


Il suffit de faire une datastore pour filtrer sur une extension :

Code: pb

Long ll_cnt, ll_temp,ll_loop,ll_insert,ll_pos_filename,llengthextension
str_files lstr_parms, lstr_temp,lstr_final
OLEObject obj_shell, obj_folder, obj_items, obj_item
Datastore lds_files

lds_files = Create DataStore
lds_files.DataObject = 'd_ds_files'

lstr_parms = This._GetFiles(as_folder)

llengthextension = Len(Trim(as_extension))

//Create a datastore to filter with extension
For ll_loop = 1 To UpperBound(lstr_parms.as_file[])
  ll_insert = lds_files.InsertRow(0)
  lds_files.SetItem(ll_insert,'filepath',lstr_parms.as_file[ll_loop])
  lds_files.SetItem(ll_insert,'fileext',Right(lstr_parms.as_file[ll_loop],llengthextension))
  ll_pos_filename = Len(Trim(as_folder)) + 2
  lds_files.SetItem(ll_insert,'filename',Mid(lstr_parms.as_file[ll_loop],ll_pos_filename))
Next

//Filter with the specified extension
If Trim(as_extension) <> '' Then
  lds_files.SetFilter("Trim(Lower(fileext)) = '"+Trim(Lower(as_extension))+"'")
  lds_files.Filter()
End if

If lds_files.RowCount() > 0 Then
  For ll_loop = 1 To lds_files.RowCount()
    lstr_final.as_file[ll_loop] = Trim(lds_files.GetItemString(ll_loop,'filename'))
    lstr_final.as_filePath[ll_loop] = Trim(lds_files.GetItemString(ll_loop,'filepath'))
    lstr_final.as_extension[ll_loop] = Trim(lds_files.GetItemString(ll_loop,'fileext'))
  Next
End if

Destroy lds_files

lstr_parms = lstr_final

//return list
RETURN lstr_parms


Edit :

Dernière modification par JCZ (03-12-2012 17:28:44)

Hors ligne

 

#15 20-11-2012 12:03:15

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Lister le contenu de plusieurs répertoires avec la fonction PB DirList

de ta contribution

je fais un post spécifique avec ton code, il sera retrouvé plus facilement


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » Lister le contenu de plusieurs répertoires avec la fonction PB DirList

Pied de page des forums

Propulsé par FluxBB 1.2.22