Bonjour,
le code de mon voisin du dessus a l'air fonctionnel, bien que ce dernier présente un tableau 2D à 3 colonnes qui pourrait ne pas te convenir.
Bien que la solution donnée soit tout à fait convenable, je pense qu'il est important de parler un peu du code original, ou en tout cas au moins pour savoir ce qui marche et ce qui ne marche pas.
Déjà première chose, ton tableau est de 11 colonnes, alors que tu souhaites stocker 12 imprimantes. Il t'aurait donc fallu déclarer un tableau plutôt comme celui-ci
En effet l'indice maximal sera 11 (car le tableau commence à 0), mais de 0 à 11 il y a bien 12 emplacements possibles.
En déclarant ton tableau ainsi, tu as un tableau ayant des cases valables (pour l'indice en colonne) de 0 à 10 soit 11 cases.
Ensuite ta boucle principale. Il y a de grosses erreurs autant côté algorithmique pure que de compréhension. Pourquoi ? Tout d'abord, tu prends une boucle "for" (qui est un très bon choix pour ce que tu t'apprêtes à faire) et choisit comme variable compteur $imp. Dans ton code tu aurais pu mettre : $toto, $i cela n'aurait rien changé. Dans ta tête c'est différent. Toi tu as fait le rapprochement que si l'on ajouter "1" et qu'ensuite l'on incrémentait (boucle "for) à chaque fois on aurait 2, 3... et qu'au final on aurait $imp1, $imp2 etc... En tout cas je le vois comme ça. Et c'est faux.
veut bien dire que ça veut dire, c'est pour la variable $imp qui vaut 1 jusqu'à 12, en aucun cas AutoIt va prendre la liberté d'ajouter la valeur à la fin de ta variable pour en trouver une autre. En revanche, il y a une astuce qui agirait de la sorte, mais que je ne conseille pas du tout car pour se perdre y'a pas mieux, et je pars du principe qu'une variable a un et nom et une valeur, et que les deux ne sont pas censés être liés...
Code : Tout sélectionner
; astuce
For $i = 1 to 12 ; on déclare la variable compteur 1
MsgBox(0,"",Execute("$imp" & $i)) ; on ajoute la valeur de $i à la fin de la chaîne de caractère "$imp" (qui n'est PAS une variable), et on affiche le contenu de la "variable" $imp$i où $i est la valeur de $i
Next
Ce code ci-dessus en revanche affiche bien ce qu'il y a dans tes variables $imp1, $imp2... Encore une fois, je ne te le conseille pas.
Je te conseille la solution de TomAjerrie qui est d'ajouter "manuellement" les valeurs de ton tableau sans passer par _ArrayInsert qui n'est pas adapté à la situation à mon avis.
Maintenant, si tu n'en as pas envie, tu peux aussi initialiser ton tableau après sa déclaration comme ça tu as juste à l'afficher :
Code : Tout sélectionner
Local $retour[12][2] = [ _
["Imprimante 1","Run(....."], _
["Imprimante 2","Run(....."], _
["Imprimante 3","Run(....."], _
["Imprimante 4","Run(....."], _
["Imprimante 5","Run(....."], _
["Imprimante 6","Run(....."], _
["Imprimante 7","Run(....."], _
["Imprimante 8","Run(....."], _
["Imprimante 9","Run(....."], _
["Imprimante 10","Run(....."], _
["Imprimante 11","Run(....."], _
["Imprimante 12","Run(....."] ]
Remarque : le "_" permet de revenir à la ligne pour pouvoir améliorer la lisibilité.
Et donc là en faisant une boucle de 0 à 11, tu peux parcourir ton tableau et récupérer l'information que tu souhaites.
En espérant avoir été clair, bon courage !
Étudiant en 2ème année de Licence Informatique.