[..] Problème avec les variables indicées / indexées

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
zano972
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 12 avr. 2014 17:06
Status : Hors ligne

[..] Problème avec les variables indicées / indexées

#1

Message par zano972 »

Re,

J'avoue que je ne pensais pas revenir si vite avec un petit (petit est relatif car j'ai été tellement énervé qu'il m'a fallut attendre plus d'une heure pour poster ce message... Ben oui je voulais absolument rester poli :lol: ).

L'énoncé du problème courant est très simple et je vais vous le présenter en images et en textes (pas de son... On sait jamais qu'il y ait parmi vous des moins de 18 ans)

1 - ) Afficher via un script AutoIt la liste des fichiers d'un répertoire,
2 - ) sélectionner un / des fichier(s) dudit répertoire,
3 - ) Copier ce's) fichier(s) ailleurs...

Bon je vous avoue que jusqu'ici, ça casse pas 4 pattes à un canard et que même l'explorer Windows seul sans aide extérieure est capable de le faire sans sourciller... Seulement voilà, apparemment AutoIt a un peu de mal à appréhender les variables string indexées (à mon humble avis) et j'illustre donc mon propos avec iillustrations et explications de texte à l'appui...

A - ) Voici le script de l'opération chargé dans Scite:
D&A00.JPG
... Et sa version texte:

Code : Tout sélectionner

#include-once
    #include<Array.au3>
    #include"_FileListToArrayEx.au3"

local $sPath = "I:\Amiga_Boulder-Mines\"
local $Dest = "D:\ztemp\"
; Acquisition du contenu du dosier...
$ar_Array = _FileListToArrayEx ($sPath, "*.*", 1, 2)
; Affichage du contenu du dossier
_ArrayDisplay($ar_Array, "Liste des Mines")
; Affichage de la valeur stockée à l'index 1
MsgBox(0,"valeur stockée à l'indice 1 : ", $ar_Array[1])
; Affichage du contenu du dossier référencé à l'indice 1 (addessage absolu
Run("C:\WINDOWS\EXPLORER.EXE /n,/e," & $sPath & "1stclassbd.adf")
MsgBox(0,"valeur stockée à l'indice 1 : ", $ar_Array[1])
; la même chose en utilisant la variable indexée
Run("C:\WINDOWS\EXPLORER.EXE /n,/e," & $sPath & $ar_Array[1])
MsgBox(0,"valeur stockée à l'indice 1 : ", $ar_Array[1])
; et là rien ne va plus !!!
1.) Après l'exécution de la ligne 10, on obtient tout naturellement:
D&A01.JPG
Puis après exécution de la ligne 12 :
D&A02.JPG
Jusqu'ici tout baigne dans l'huile... On continue donc avec la ligne 14 (qui ne fait qu'afficher le contenu du dossier dont le nom a été passé - comme constante - en argument...
D&A04.JPG
Pas de souci, le contenu du dossier est bien listé... Et ma variable indexée (ar_Array[1]) contient toujours à ce stade :
D&A03.JPG
Alors maintenant je voudrais trouver quelqu'un qui puisse - logiquement - m'expliquer pourquoi après l'exécution de la ligne 17 - qui n'a que la particularité (par rapport à la syntaxe utilisée dans la ligne 14) d'être appelée en faisant référence à la valeur contenue dans la variable indexée (ar_Array[1]), au lieu d'une valeur littérale constante de me présenter le contenu du dossier par défaut (en l'occurence: ..\Mes Documents\) alors qu'à ce stade, ar_Array[1] est toujours égal à : sPath + "1stclassbd.adf" ????
D&A05.JPG
Mystère...

Bonne continuation et A+++
Fichiers joints
D&A02.JPG
D&A01.JPG
D&A00.JPG
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Problème avec les variables indicées / indexées

#2

Message par PandiPanda »

Bonsoir,

Le probleme ne vien pas du fait que dans votre variable $ar_Array[1], il contient tout le chemin en lui même?
Donc en fait $ar_Array[1] c'est la même chose que sPath + "1stclassbd.adf"

Ensuite vous voulez exécuter $sPath & $ar_Array[1] qui est totalement différent de $sPath & "1stclassbd.adf"

En gros vous avez à la ligne 14;
>> Run("C:\WINDOWS\EXPLORER.EXE /n,/e," & "I:\Amiga_Boulder-Mines\" & "1stclassbd.adf") << OK
à la ligne 17;
>> Run("C:\WINDOWS\EXPLORER.EXE /n,/e," & "I:\Amiga_Boulder-Mines\" & "I:\Amiga_Boulder-Mines\1stclassbd.adf") << FAIL

Pour arranger cela, à votre ligne 17 vous devriez mettre ceci;
>> Run("C:\WINDOWS\EXPLORER.EXE /n,/e," & $ar_Array[1])
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
zano972
Niveau 1
Niveau 1
Messages : 5
Enregistré le : sam. 12 avr. 2014 17:06
Status : Hors ligne

Re: [..] Problème avec les variables indicées / indexées

#3

Message par zano972 »

PandiPanda, je vous assure que ce soir vous pouvez vous féliciter d'avoir accompli une bonne oeuvre car à la lecture de votre réponse, je viens de me décider à enfin arreter le whisky !!! :lol:

En effet et rien à dire... J'ai encore raté là une occasion de me taire (eh... j'ai quand même passé la demie journée sur cette conn....) :evil:

Un grand merci et pas de souci, si vous me cherchez, regardez dans le coin à gauche de la pièce, vous m'y trouverez accroupi, honteux et prostré.

A+++
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Problème avec les variables indicées / indexées

#4

Message par jguinch »

zano972, merci de passer le titre du premier post en [R] si le problème est résolu.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre