[R] Tableau qui ne se remplit pas dans une boucle FOR

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
losutak
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 30 oct. 2013 15:36
Status : Hors ligne

[R] Tableau qui ne se remplit pas dans une boucle FOR

#1

Message par losutak »

Bonjour,
Je voudrais faire ceci :

Code : Tout sélectionner

    For $i = 1 to $liste[0] ;boucle pour lire tous les fichiers avec la bonne extension
        $txt = "" ;On vide la variable pour ne pas se retrouver avec plusieurs fois la même liste
        $txt &= $liste[$i] & "|" ;on les met dans une varibale pour ensuite les rangés dans une combobox
        load_macro_liste($file_load_macro);on charge les fichier un à un en mémoire
        MsgBox(0,"","Key1 = "&$Array_return_Load[3]&@CRLF&"I = "&$i)
        Dim $Key1[$i] = [$Array_return_Load[3]]
        Dim $Key2[$i] = [$Array_return_Load[4]]
Next
C'est à dire, une variable, ici $i qui ajoute 1 à chaque fois qu'elle passe dans la boucle bon ici ça fait 4 fois car $liste vaut 4 au maximum. Le problème c'esr que quand j'utilise

Code : Tout sélectionner

_ArrayDisplay($Key1)
Il n'y a que la première ligne qui change, seule la première valeur est sauvegrder :?:
Merci d'avance
Modifié en dernier par losutak le mar. 05 nov. 2013 18:59, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#2

Message par mikell »

Si tu vides la variable $txt à chaque tour de boucle faut pas t'étonner qu'elle ne contienne qu'une seule valeur à la fin ^^
Et enlève les Dim
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
losutak
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 30 oct. 2013 15:36
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#3

Message par losutak »

Oui mais la variable $txt est sauvegarder dans le tableau non ? après la ligne change, or ici on dirais que la ligne ne change pas :?
Edit : Au passage c'est les diffèrentes valeurs de $Array_return_Load[3] que je veut sauvegarder dans mon tableau.
A chaque tour de boucle les valeurs de cette ligne change et je veut les sauvegarder dans $Key1 pour ensuite les affichés (pour le moment)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#4

Message par mikell »

Alors faut écrire

Code : Tout sélectionner

$Key1[$i] = $Array_return_Load[3]
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
losutak
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 30 oct. 2013 15:36
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#5

Message par losutak »

J'obtient cette erreur :

Code : Tout sélectionner

C:\Users\lucas\Desktop\Programmes\AutoIt\MacroMan\MacroMan Tests ².au3 (95) : ==> Subscript used with non-Array variable.:
$Key1[$i] = $Array_return_Load[3]
$Key1^ ERROR
Tous mes tableaux sont ici :

Code : Tout sélectionner

Dim $Array_return_Load[5] = [0,0,0,0,0]
Dim $Key1[10]
Dim $Key2[10]
Enfaîte seule la première ligne change
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#6

Message par TT22 »

Et comme ça :

Code : Tout sélectionner

Dim $Array_return_Load[5] = [0,0,0,0,0]
Dim $Key1[10]
Dim $Key2[10]
For $i =1 to $liste[0] ;boucle pour lire tous les fichiers avec la bonne extension
        $txt &= $liste[$i] & "|" ;on les met dans une variable pour ensuite les ranger dans une combobox
        load_macro_liste($file_load_macro);on charge les fichier un à un en mémoire
        MsgBox(0,"","Key1 = "&$Array_return_Load[3]&@CRLF&"I = "&$i)
        $Key1[$i-1] = $Array_return_Load[3]
        $Key2[$i-1] = $Array_return_Load[4]
Next
Mais attention, si $liste[0] est supérieur à 10 alors ça va poser problème :roll:
Il faudra dans ce cas utiliser des ReDim.
Cordialement,
TT22
losutak
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 30 oct. 2013 15:36
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#7

Message par losutak »

Nouveau message d'erreur :
C:\Users\lucas\Desktop\Programmes\AutoIt\MacroMan\MacroMan Tests ².au3 (94) : ==> Array variable subscript badly formatted.:
Dim $Key1[$i-1] = [$Array_return_Load[3]]
Dim $Key1[^ ERROR
avec juste ça :

Code : Tout sélectionner

Dim $Key1[$i-1] = [$Array_return_Load[3]]
je suis obliger de metre Dim et d'entouré $Array_return_Load[3] de crochet sinon j'ai ça comme erreur :
C:\Users\lucas\Desktop\Programmes\AutoIt\MacroMan\MacroMan Tests ².au3 (95) : ==> Subscript used with non-Array variable.:
$Key1[$i] = $Array_return_Load[3]
$Key1^ ERROR
Et techniquement liste ne dépasse même pas 4 donc ej voit pas comment il peut être supérieur à 10 :)
franchement depuis le début de cette aprem' je galère, ça me saoule un peu :lol:
Merci pour vos réponses, j'espère pouvoir résoudre ça avant Lundi 8)
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#8

Message par TT22 »

Tu peux pas nous donner toute la partie de ton code qui pose problème ?
Parce que là tu nous donne que des petits bouts donc on ne peut pas savoir si tu déclare bien les variables, si tu ne mélange pas plusieurs réponses, etc.
Cordialement,
TT22
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#9

Message par mikell »

losutak a écrit :je suis obliger de metre Dim et d'entouré $Array_return_Load[3] de crochet
ça ne veut plus dire la même chose ! avec Dim tu recrées une array
le fichier d'aide a écrit :The Dim/Local/Global keywords perform similar functions:
1. Declare a variable before you use it (similar to VBScript)
2. Create an array
Donc écrire ça

Code : Tout sélectionner

Dim $Key1[$i-1] = [$Array_return_Load[3]]
revient à dire : je crée une array $Key1 qui contient $i-1 éléments dont le 1er est $Array_return_Load[3] ^^
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
losutak
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 30 oct. 2013 15:36
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#10

Message par losutak »

D'accord au pire je peut vous passer tous le code :
► Afficher le texte

Il est un peut massif :lol:
Je pense que l'erreur vient de la fonction Load() c'est à partit de là que le premier 1rray est remplis
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#11

Message par mikell »

Bon alors, je suis pas rentré dans le détail mais c'est normal que $Key1 merdoie si tu utilises ce nom de variable pour des tas de choses différentes
Ya du boulot... par exemple ya 2 fonctions 'load' qui font exactement la même chose donc y en a une de trop
Oublie aussi les trucs du genre GuiCtrlSetData("18", $txt) et utilise GuiCtrlSetData($CMB_Macro_liste, $txt) si tu veux t'y retrouver
etc
Enfin ça ça marche déjà mieux
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
losutak
Niveau 2
Niveau 2
Messages : 26
Enregistré le : mer. 30 oct. 2013 15:36
Status : Hors ligne

Re: [..] Tableau qui ne se remplit pas dans une boucle FOR

#12

Message par losutak »

J'essaye ça cette aprem, et en effet la variable jeu était utiliser pour stocker autre chose, pas pour un tableau :lol:
Et oui en effet il y a deux fois une fonction load à cause de problème avec les variables de chemin.
Bref, j'essaye ça dans la mâtiné en tous cas Merci ! :)
Répondre