Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
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
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
ou alors utilise les fonctions de l'API : [SOURCE] Liste des fichiers d'un dossier avec ou sans ListBox
Hors ligne
erasorz gagne un Russe Blanc pour sa réponse ;-)
Hors ligne
rincevent a écrit:
erasorz gagne un Russe Blanc pour sa réponse ;-)
où est le pognon lebowski ?
Hors ligne
Lequel des deux ?
http://fr.wikipedia.org/wiki/Russes_blancs
http://fr.wikipedia.org/wiki/White_russian
Hors ligne
Ok merci à tous.
Je vais étudier ça.
Hors ligne
Hors ligne
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 ?
Hors ligne
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
Bonjour, moi je cherche a enregistrer le nom de ces fichier dans une variable tableau du style ls_fichier[]
Cordialement
Hors ligne
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
Hors ligne
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.
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
Voici une petite fonction qui permet de récupérer tous les fichier d'un répertoire et de ses sous répertoires
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 :
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
de ta contribution
je fais un post spécifique avec ton code, il sera retrouvé plus facilement
Hors ligne
Pages: 1