Boucle sur nom de variable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
CrashOv3r
Niveau 1
Niveau 1
Messages : 8
Enregistré le : dim. 02 août 2015 18:42
Status : Hors ligne

Boucle sur nom de variable

#1

Message par CrashOv3r »

Bonjour,

J'aimerai savoir s'il est possible de faire une boucle sur des noms de variable ?
Je m'explique :

J'ai 8 variables :
_ statut1
_ statut2
_ statut3
_ statut4
_ statut5
_ statut6
_ statut7
_ statut8

et ensuite je voudrais faire quelque chose qui ressemble à ça:

Code : Tout sélectionner

For $i=1 To 8 Step 1
   $statut & $i = 5
Next
de telle sorte que toutes mes variables soient égales à 5 (dans cet exemple)

Je fais un script avec une 60aine de variable avec le même préfixe et pouvoir boucler dans cette idée là m'éviterai de tout faire à la main.
Voilà si quelqu'un a une idée.
Merci d'avance !

Cordialement.
Avatar du membre
TomAijerrie
Niveau 5
Niveau 5
Messages : 192
Enregistré le : lun. 02 juin 2014 09:55
Localisation : Lyon
Status : Hors ligne

Re: Boucle sur nom de variable

#2

Message par TomAijerrie »

Ce n'est effectivement pas la bonne solution.
Je te propose de regarder comment fonctionnent es "variables tableau"

Code : Tout sélectionner

Global $statut[8]
;On déclare une variable tableau à une dimension et à 8 cases.

For $i = 0 To 7
    ;ça va toujours de 0 à (nombre de case/ligne/colones -1)
    $statut[$i] = 5
Next
CrashOv3r
Niveau 1
Niveau 1
Messages : 8
Enregistré le : dim. 02 août 2015 18:42
Status : Hors ligne

Re: Boucle sur nom de variable

#3

Message par CrashOv3r »

Arf, j'avais les tableaux en vue mais comme j'ai repris un code qui date de Jérusalem, je ne voulais pas le "casser".
Bref si c'est le seul moyen, je vais m'y résoudre.

Merci de ta réponse ;)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Boucle sur nom de variable

#4

Message par Tlem »

Bonjour.
Cela est tout à fait possible (bien que pas très pratique).

Pour cela vous devez utiliser les fonctions Assign et Eval.

Code : Tout sélectionner

For $i = 1 To 8
	Assign("statut" & $i, 5)
Next

; Affichage des variables
MsgBox(0, "Affiche les variables", "$statut1 = " & Eval("statut1") & @CRLF & _
		"$statut2 = " & Eval("statut2") & @CRLF & _
		"$statut3 = " & Eval("statut3") & @CRLF & _
		"$statut4 = " & Eval("statut4") & @CRLF & _
		"$statut5 = " & Eval("statut5") & @CRLF & _
		"$statut6 = " & Eval("statut6") & @CRLF & _
		"$statut7 = " & Eval("statut7") & @CRLF & _
		"$statut8 = " & Eval("statut8"))
		

; Ou avec une boucle ...
Local $Msg
For $i = 1 to 8
	$Msg &= "$statut" & $i & " = " & Eval("statut" & $i) & @CRLF
Next
MsgBox(0, "Affiche les variables", $Msg)
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é".
CrashOv3r
Niveau 1
Niveau 1
Messages : 8
Enregistré le : dim. 02 août 2015 18:42
Status : Hors ligne

Re: Boucle sur nom de variable

#5

Message par CrashOv3r »

Ah oui c'est pas mal ça, c'est ce qu'il me fallait ;)

Merci beaucoup !
Répondre