Page 1 sur 1

[R] Associer deux variable

Posté : sam. 17 déc. 2011 16:41
par silvere
Salut !
Mon titre n'est peut-être pas le bon.
Je cherche faire un code du genre :
► Afficher le texte
mais qui fonctionnerai.
c'est a dire que $teste1 = 1, $teste2 = 2 ...

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 16:58
par mikell
Bien propre ^^

Code : Tout sélectionner

For $i = 1 To 3
   Assign("teste" & $i, $i)
Next
If IsDeclared("teste1") and IsDeclared("teste2") and IsDeclared("teste3") Then
   MsgBox(0, "", Eval("teste" & "1") &@crlf& Eval("teste" & "2") &@crlf& Eval("teste" & "3") )
   MsgBox(0, "", $teste1 &@crlf& $teste2 &@crlf& $teste3 )
EndIf

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 17:40
par silvere
il y a pas plus simple ? car la je comprend pas

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 17:47
par mikell
Non ya pas plus simple, faut utiliser la fonction Assign()
J'ai fait le script dans les règles mais pour comprendre voilà un test facile

Code : Tout sélectionner

Assign("teste" & "1", "tagada")   ; crée la variable $teste1 et lui attribue la valeur "tagada"
MsgBox(0, "", $teste1)   ; vérification

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 18:33
par PandiPanda
Bonsoir,
bhe plus simple => tableau (array)
Cependant ca repond pas à votre demande initiale ...

exemple de script:

Code : Tout sélectionner

Dim $monArray[4]
For $i=0 To 3
    $monArray[$i]=$i
Next

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 18:40
par mikell
Panda tu trouves ça simple ?
L'élément n°3 qui sappelle array[2]
Et la m3rde avec les UBound-1 :mrgreen:

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 18:46
par PandiPanda
bhe si on a en tete que le 1er element commence à 0, tout coule de source :mrgreen:

Mais l'utilisation de Assign(), perso j'aime pas ... deja il faut que toute les variables soit crée préalablement(et il faut pas oublier le '$' ...), et on se trompe vite fait une fois qu'on depasse les 100 variables :P

Sans oublier la place que ca prend ... Mais après chacun son choix :lol:

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 18:47
par sylvanie
Voyant que Mikell a fait une petite erreur de frappe, pour ceux qui ne l'avaient pas compris, il parlait de la gestion laborieuse avec les Ubound - 1 :mrgreen:

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 18:54
par sylvanie
PandiPanda a écrit :
Mais l'utilisation de Assign(), perso j'aime pas ... deja il faut que toute les variables soit crée préalablement
c'est faux. Il faut simplement jouer le jeux que si on utilise Assign, il faut alors passer par Eval pour accéder à cette variable créée dynamiquement :

Code : Tout sélectionner

opt("MustDeclareVars",1)

Dim $ind
for $ind=1 to 10
    Assign("Myvar"&$ind,$ind)
Next

for $ind=1 to 10
    ConsoleWrite("Assign"&$ind&" = "&Eval("Myvar"&$ind)&@CRLF)
Next

 

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 18:58
par PandiPanda
Hanlalala beh decidemment, j'ai mal compris :p
merci pour cette information ^^

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 19:02
par silvere
Stop !
Vous me perdez en cour de route :mrgreen:
J'prend la fonction de Panda la plus simple a mes yeux.
Mais sans doute la moins performante

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 19:55
par silvere
Je suis désespérer pouvez vous m'expliquez pour quoi quand on change de "page" sa change pas la date?
► Afficher le texte

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 21:51
par sylvanie
Vous redéfinissez vous variables de GUI en portée globale d'une GUI à l'autre en gardant les même nom de variable donc il y a écrasement des identifiant.

Pour faire au plus vite, j'ai préfixé vos id de contrôle de la 2eme fenêtre avec 2, genre input1 => input21
En général; prenez des noms significatifs pour chaque contrôle, pas de nom de variables identiques entre 2 GUI (en parlant des contrôle) et ne prenez la portée global que quand c'est vraiment nécessaire
► Afficher le texte

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 22:47
par silvere
Tu me sauve, j'avais oublier sa :(

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 23:07
par mikell
Rhaa quelle sale habitude d'appeler ses controles $input1, $input2 etc
ça va bien quand yen a pas beaucoup, mais après vaut mieux faire $input_nom, $input_date etc
Et ça permet d'éviter ce genre d'erreurs ^^

Re: [..] Associer deux variable

Posté : sam. 17 déc. 2011 23:55
par Iste
N'oubliez pas que
La réflexion est une chose extrêmement puissante qui peut rendre les programme beaucoup plus propre et puissant, a condition d'être bien utilisé !!
Réfléchissez donc à la pertinence de leur utilisation avant de les taper, car elles peuvent aussi rendre votre code très lourd et très crade !
cf : http://autoitscript.fr/forum/viewtopic.php?f=11&t=6665

Re: [R] Associer deux variable

Posté : dim. 18 déc. 2011 11:28
par silvere
Iste a écrit : N'oubliez pas que
Oui c'est le problème moi j’oublie beaucoup de chose pour sa que je créé un logiciel memo :mrgreen:

j'ai un autre prb je bloque a l’option supprimer un memo :
( Partie verte )

Edit Tlem : Code supprimé. Limitez le nombre de question par sujet, sinon, on fini par ne plus s'y retrouver.