[...] Copie d'un dossier suite à recherche

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

[...] Copie d'un dossier suite à recherche

#1

Message par Sydneysyd »

Re,

Voilà, j'ai utilisé la fonction FileListToArrayNT pour trouver un dossier nommé BDD
► Afficher le texte
Donc, ca fonctionne sauf qu'il me ressort une liste considérable et pas seulement le dossier unique.
Par la suite, je voudrais que ce resultat de recherche devienne une variable pour l'utilisation de filecopy vers une lettre de lecteur.

Je bloque sur le fait de transformer le resultat en variable

Merci d'avance,
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#2

Message par Tlem »

Si FileListToArrayNT() vous retourne plusieurs éléments, c'est que dans votre PC, vous avez plusieurs dossiers BDD !

Après, vous demandez de mettre cela en variable ... Mais c'est déjà le cas !
Et c'est la variable tableau $ar_Array.

Pour exécuter des commandes sur ce qui vous est retourné, utilisez une boucle For (de 1 à la fin du tableau) et la liste des variables du tableau tel que $ar_Array[x] ou x est le numéro de l'élément du tableau que vous voulez lire.
Exemple :

Code : Tout sélectionner

For $i = 1 Ti Ubound($ar_Array) - 1
Consolewrite($ar_Array[$i] & @LF)
Next
Mais bon, ceci fait partie de l'apprentissage de base que vous trouverez sur le site du Zéro.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#3

Message par Sydneysyd »

Bonjour,

Merci pour la réponse Tlem.

Les boucles sont un peu ma bête noir en fait, j'ai toujours du mal à comprendre le fonctionnement... :?

Pour le dossier BDD, je n'en ai qu'un seul, qui contient des sous-dossiers OL_XXX, donc un peu supris, car en fait, il me sort la liste des fichiers contenu dans les sous-dossiers OL_XXX qui est dans le dossier BDD !
Je crois ne pas avoir activé la recursivité pour avoir que le chemin du dossier.

Pour la variable, si j'ai bien compris, je peux faire un filecopy de $ar_array et cela passera, vu que la variable effectue la recherche intrinsèquement parlant (si j'ose dire)

Mais j'ai du mal pour l'execution des codes sur un element précis, pourriez vous me donner un exemple un peu plus concret ? (Ce n'est pas pour être embêtant, mais les exemple m'aident à mieux comprendre)
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#4

Message par TopXm »

Hello :)

J'ai eu à faire quelques test avec cette fonction, du coup je vais essayer de faire avancer le Schmilblick :)

Déjà une chose me surprend, car chez moi cette fonction s'appelle _FileListToArrayNT7() : http://www.autoitscript.com/forum/topic ... ntry702862

( NB : Je suis parti du lien donné par le boss ici : http://www.autoitscript.fr/forum/viewto ... 893#p34893 )

Personnellement aucun souci, il me ressort bien que les noms de dossiers. Le code :

Code : Tout sélectionner

#include <Array.au3>
#include <_FileListToArrayNT7.au3>

; Recursive Search Folder Only in "C:\Users\TopXm\Desktop"
$ar_Array = _FileListToArrayNT7("C:\Users\TopXm\Desktop", "*", 2, 2, True, "Temp")
If Not @error Then _ArrayDisplay($ar_Array, "Liste fichier")
 
@Sydneysyd : tu devrais peut-être essayer cette fonction comme ceci :

Code : Tout sélectionner

$ar_Array = _FileListToArrayNT7("C:\BDD", "*", 2, 2, True, "Temp")
 
Pour ce qui est de la variable, comme indiqué par Tlem, c'est déjà le cas, $ar_Array est la variable qui contient un tableau des dossiers trouvés.

Pour sauvegarder le résultat dans un fichier tu peux faire en suivant :

Code : Tout sélectionner

Local $NomFichier = @DesktopDir & '\File_List.txt'
Local $Res = _ArrayToString($ar_Array, @CRLF)
FileWrite($NomFichier, $Res)
:)
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#5

Message par Sydneysyd »

Merci pour la réponse, j'ai aussi effectivement utiliser le post de Tlem pour utiliser la fonction filelist version NT.

Concernant le code donné, j'ai le résultat suivant (après une longue analyse)


Image


Donc, ce n'est pas le dossier mais les fichiers contenu dans le dossier.

De plus, comment pourrais-je faire pour afficher un etat d'avancement de la recherche ? Vu que ca à l'air assez long...

Merci encore
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#6

Message par TopXm »

Re :)
Sydneysyd a écrit :Concernant le code donné, j'ai le résultat suivant (après une longue analyse)
Tu as ton bout de code STP qu'on vérifie :)
Sydneysyd a écrit :De plus, comment pourrais-je faire pour afficher un etat d'avancement de la recherche ? Vu que ca à l'air assez long...
Soit tu modifies la fonction pour y intégrer la ProgressBar soit tu recodes toi-même la fonction ce qui va être un peu plus ardu attendu qu'il y a récursivité :)

Mais bon à la rigueur on peut te le faire ;)
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#7

Message par Sydneysyd »

► Afficher le texte
J'a repris ce que l'on m'a donné :)

Pour la progress bar, j'aimerais bien que l'on me montre effectivement mais avec explications pour savoir le maitriser par la suite.
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#8

Message par TopXm »

Re :)

Bon ça vient bien de la version de ta fonction. Regarde si je créé le même dossier que toi et que j'y ajoute des fichiers, chez moi no souci :
► Afficher le texteTest Array
Voici la fonction que j'ai utilisée :
► Afficher le texte_FileListToArrayNT7
Pour ce qui est de la progressBar tu veux faire comment au final ? Modifier _FileListToArrayNT7 ou créer ton propre fonction ?

++ :)
Fichiers joints
BDD.png
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#9

Message par Tlem »

Je conseille fortement d'utiliser les dernières fonctions de recherche de fichiers !
Soit _RecFileListToArray => http://www.autoitscript.fr/forum/viewto ... 531#p45531
Soit _FileListToArrayEx => http://www.autoitscript.fr/forum/viewto ... 532#p45532
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Sydneysyd
Niveau 5
Niveau 5
Messages : 177
Enregistré le : jeu. 24 nov. 2011 08:58
Status : Hors ligne

Re: [...] Copie d'un dossier suite à recherche

#10

Message par Sydneysyd »

Merci Tlem pour la fonction donnée.

TopXm > le resultat me donne donc ceci : Program Files\PC SOFT\Serveur HyperFileSQL\BDD

Donc pour moi, c'est le bon chemi et il s'arrête au dossier.

Deux choses encore à réussir :

La barre d'avancement de recherche du dossier (ca je ne vois vraiment pas comment faire ! )
Que le dossier BDD, puisse etre copié vers le lecteur D par exemple, mais comment le rendre en variable ?
$copie = Program Files\PC SOFT\Serveur HyperFileSQL\BDD ? ca ne peut pas copier que le dossier BDD, si je met cette variable dans la fonction filecopy ? Si ?

Pour le moment voici mon code
► Afficher le texte
-Il n'y a qu'en jouant avec les plus forts que l'on progresse-
Répondre