Autres Tests de diverses solution pour lister dans un dialog perso des fichiers en filtrant par expression et extension

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
si il y a des âmes charitables qui voudraient bien tester ma pseudo boite de dialogue fichier avec filtre ca m'arrangerait
en fait je l'ai créée sous trois formae différente

1° la filedilogspecial1
avec un dir en ligne de commande lancée par wscript.shell(.excec) et récupérée par le stdout.readall
ce qui implique une apparition brève mais tout de même de la fenêtre dos

2° la filedilogspecial2
avec un dir en ligne de commande lancée par wscript.shell (.run)et récupérée dans un fichier text temporaire
ce qui implique que la fenêtre dos n'apparait pas puisque je hide la fenêtre

3° la filedilogspecial3
dans celle ci j'utilise un hersats de ma fonction FSOGOSUB de 2021 avec FSO

tout les argument sont optionnels
le choix du fichier se fait au double click
possibilité d'annuler

vous avez 3 module pour tester chaque version
si vous pouviez donc tester la testA4 , TestB4 , TestC4 qui sont selon moi les plus importantes
et me dire si la différence de temps d'apparition de la fenêtre avec la liste de fichier filtrée avec les arguments envoyés par les sub de testsest importante ou pas
voir même cela vous gène t il plus que ça (que la fenêtre dos apparaisse brièvement (pour la fildialoSpecial1) )?

merci aux testeurs ;)
après moult tests dans diverses situations la version 5 et celle qui a été retenu
 

Pièces jointes

  • boite de dialog recherche de fichier V1 2 3 4 5 6.xlsm
    151.1 KB · Affichages: 1
Dernière édition:
Solution
bon après moults test dans diverses conditions pour la boites de dialog ce sera la petite dernière que j'ai un peu montré dans la vidéo
c'est pas la plus rapide mais

1° version 1 la méthode cmd Dir--> stdout readall ayant un problème de formatage et affichant la fenêtre de cmd vous l'avez compris de toute façon c'est la première a avoir été abandonnée

2° Version 2 méthode cmd dir --> fichier temporaire est acceptable mais selon l'occupation du pc elle peut varier su simple à X 7 a peu prés et elle exige forcement que au moins la destination du fichier soit autorisée pas simple sur pc pro voir même privé logué avec compte MS sur windows

3° version 3 FSO elle fonctionne très bien mais elle est plus lente que les autres mais je...

patricktoulon

XLDnaute Barbatruc
ça serait pas celle là par hasard
1728733555656.png
 

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
je viens de découvrir un truc avec la version adobd sur le windows filesearch
qui pour moi est rédhibitoire
ce matin je mettais au propre mes codes et tout et tout , l'ai reconstruit l'indexation , et je faisais des tests
tout était ok parfait
juste un peu plus tard j'ai créé d'autres fichiers
et j'ai relancé le test
SURPRISE SURPRISE!! les fichiers qui ont été créés après l'indexation ben Walouh!!!
j'ai redémarré le pc ben ... toujours walouh!!!
j'ai reconstruit l'indexation ben... toujours walouh!!
j'ai redémarré le pc et là enfin mes fichiers sont apparus dans la liste
autrement dit il faut refaire l'indexation et redémarrr le pc
j'ai testé 4 fois
 

jurassic pork

XLDnaute Occasionnel
Hello Patrick,
tu as sans doute un problème de cache.
[EDIT] Tu es sûr de ta manip ? Sous windows 11 je crée un nouveau fichier dans un répertoire indexé. Je lance ensuite Windir : je vois le nouveau fichier. Dans options d'indexation de windows search (dans la barre de recherche taper options d'indexation) je vois bien que l'indexation est terminée et qu'il y a un fichier en plus.
Ami calmant, J.P
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
pour ceux qui suivent encore
je vous réserve une surprise de taille(sans jeu de mots ou involontaire) dans l'après midi
qui va remettre en question tous ce que l'on a vu ensemble et croyons savoir
il y a des certitudes qui vont tomber je vous le dit
punaise c'est la gamelle là ;) 😂
je prépare ma démonstration avec test benchmark à l'appuie
 

patricktoulon

XLDnaute Barbatruc
bon après moults test dans diverses conditions pour la boites de dialog ce sera la petite dernière que j'ai un peu montré dans la vidéo
c'est pas la plus rapide mais

1° version 1 la méthode cmd Dir--> stdout readall ayant un problème de formatage et affichant la fenêtre de cmd vous l'avez compris de toute façon c'est la première a avoir été abandonnée

2° Version 2 méthode cmd dir --> fichier temporaire est acceptable mais selon l'occupation du pc elle peut varier su simple à X 7 a peu prés et elle exige forcement que au moins la destination du fichier soit autorisée pas simple sur pc pro voir même privé logué avec compte MS sur windows

3° version 3 FSO elle fonctionne très bien mais elle est plus lente que les autres mais je la garde de coté
elle est tirée de ma fonction FSO gosub mais je la prend pas pour le dialog

4° version 4 methode requete sur le windows FileSearch; capricieuse demanderait trop de modif pour qu'elle soit opérationnelle dans toutes les circonstances je ne la prends pas pour le dialogue

5° Version 5 la petite dernière avec ma toute nouvelle fonction dir par empilement (remplaçant les appels récursifs dans une fonction ) étant relativement rapide
30 ms/80ms selon la recherche et le nombre trouvé est donc la grande gagnante
régulière, stable , n'utilise aucune autre librairie, assez maniable avec les jokers pour des recherches poussées
et viva la DirPileListDIR

Merci à tous pour vos retours qui m'ont permis de faire mon choix
et un bon compromis entre solidité et rapidité

vous la trouverez prochainement dans les ressources
je déposerais aussi le fichier les contenant toutes avec le test benchmark dans une autre ressource afin que ceux qui préfèrent une autre méthode puissent se servir de ces travaux

pour vous donner un appercu de cette nouvelle fonction dans le dialog
demo1.gif


et si je met pas de filtre

demo1.gif
Encore merci a tout les participants ;)
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
re
Bonsoir Laurent
comme je l'ai dit ces 3 tu peux les oublier je ne les ai pas sélectionnés pour le dialog final
j'ai opté pour un poil plus long mais vraiment rien avec un nouveau principe qui ne demande plus de fonction récursive mais beaucoup plus sur et stable
comme tu l'a vu 2600 fichiers en 40 à 70 ms c'est plus que raisonnable
et donc en mode recherche avec argument elle est moins longue
du genre 15 fichiers trouvés dans 363 dossiers et 4277 fichiers en tout en 17 ms

et dans les essais je montre A + B que s'est pas celle que l'on croit qui est plus rapide

je le montre encore dans une autre discussion

je pense la déposer demain dans les ressources je fait tout les test possibles
une nouveauté c'est quelle est optionnellement multi select aussi ce qui peut être un plus
 

laurent950

XLDnaute Barbatruc
Bonsoir Patrick
je pense la déposer demain dans les ressources je fait tout les test possibles
une nouveauté c'est quelle est optionnellement multi select aussi ce qui peut être un plus

Effectivement, c'est très rapide et vraiment un sujet passionnant. Dès que tu partages le code que tu as créé, je vais le tester avec grand intérêt.

Merci Patrick pour ta réponse, ainsi que pour tes idées que tu sais toujours mettre en valeur.

Laurent
 

patricktoulon

XLDnaute Barbatruc
re
bonjour à tous
le dialog de la version 1 à 4


et bientôt disponible la version 5 dans les ressources

encore merci à tous ;)
 

Pièces jointes

  • boite de dialog recherche de fichier V1 2 3 4.xlsm
    122.2 KB · Affichages: 1
Dernière édition:

jurassic pork

XLDnaute Occasionnel
Hello,
patrick je viens d'essayer ton classeur : la version 4 ne fonctionne pas chez moi (aucun résultat) . Tu m'as l'air d'avoir changer l'utilisation de l'adodb par rapport à un post( utilisation de recordset au lieu de execute(sql) sur connexion et getrows).
[EDIT] En fait cela fonctionne , j'avais mis * dans Expression qui fonctionne dans les autres versions (1,2,3) mais pour le 4 il ne faut rien mettre car le %*% recherche une étoile ( * pas un joker en SQL)
Les caractères jokers (wildcards) sont utilisés avec l’opérateur LIKE dans SQL pour effectuer des recherches sur des chaînes de caractères. Voici les deux caractères jokers couramment utilisés :
% (pourcentage) : représente zéro ou plusieurs caractères. Il est utilisé pour rechercher des chaînes de caractères qui contiennent un motif spécifique, même si ce motif est suivi ou précédé de zéro ou plusieurs caractères.
_ (underscore) : représente un seul et unique caractère. Il est utilisé pour rechercher des chaînes de caractères qui contiennent un motif spécifique, avec exactement un caractère supplémentaire.


Ami calmant, J.P
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour @jurrasic pork pour la 4 j'ai toujours utilisé un object recordset
les object comme un .execute dans un bloc with object connexion est proscris chez moi

on essaie de gagner du temps autant éviter a vba de calculer qui est quoi et quoi fait quoi
les astérisque j'ai peut ^tre raté quelque chose en effet je l'ai dis dans un vidéo précédente dans le cadre de sql sur le windowsfilesearch c'est le "%" le jocker
je vais vérifier dans la source
merci pour le retour
 
Dernière édition:

Statistiques des forums

Discussions
315 089
Messages
2 116 099
Membres
112 661
dernier inscrit
ceucri