Page 1 sur 1

Boucle sur nom de variable

Posté : lun. 08 mai 2017 12:00
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.

Re: Boucle sur nom de variable

Posté : lun. 08 mai 2017 13:31
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

Re: Boucle sur nom de variable

Posté : lun. 08 mai 2017 15:15
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 ;)

Re: Boucle sur nom de variable

Posté : lun. 08 mai 2017 16:12
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)

Re: Boucle sur nom de variable

Posté : lun. 08 mai 2017 18:24
par CrashOv3r
Ah oui c'est pas mal ça, c'est ce qu'il me fallait ;)

Merci beaucoup !