Page 1 sur 1

[R] Problème de $ dans une fonction

Posté : mar. 17 juin 2008 23:40
par obi_one
Salut à tous,
Bon j'ai fait plusieurs recherche dans le forum mais sans vraiment trouver une réponse (peut-être que je m'y prend mal).

Bref... Voici mon soucis :

J'ai un script qui contient plein d'Array :

Code : Tout sélectionner

Dim $a1[2][13] = [[.....][....]]
Dim $a2[2][13] = [[.....][....]]
Dim $b2[2][13] = [[.....][....]]
Dim $b3[2][13] = [[.....][....]]
...
 
J'en ai plein avec une bonne liste de valeur dedans

J'ai aussi fait une interface graphique avec un ComboBox qui contient :
a1
a2
b1
b2
b3
....

Et un bouton "Trouver"

J'aimerai faire une fonction qui récupére la premiere valeur lorsque qu'on clique sur le bouton (c'est pas vraiment ça mais c'est pour simplifié mes explications qui me sont déjà assez difficile :?) :

Code : Tout sélectionner

Func Trouver($liste)
; $liste => le nom de la liste (par exemple : a2)
Return $liste[0][1]
EndFunc
 
Bref mon soucis se trouve dans cette fonction en question

Je l'appel ainsi :

Code : Tout sélectionner

Trouver(GUICtrlRead($ComboBox))
Malheureusement je ne trouve pas la manip pour réutilisé le signe $ devant le parametre passé dans la variable :

$liste = a1 et non $a1 dans la fonction

J'ai fait des essais :

Code : Tout sélectionner

Return $list[0][0]
ou :

Code : Tout sélectionner

Return "$" & $liste[0][0]
ou encore :

Code : Tout sélectionner

Eval("liste") & [0][0]

Ma seul solution qui fonctionne pour le moment est un peu "crade" je trouve :

Code : Tout sélectionner

; Délcaration de tout mes Arrays
Dim $a1[2][13] = [[.....][....]]
Dim $a2[2][13] = [[.....][....]]
Dim $b1[2][13] = [[.....][....]]
Dim $b2[2][13] = [[.....][....]]

;.....

; On appel la fonction ainsi (on récupère la valeur du ComboBox)
Trouver(GUICtrlRead($ComboBox))


; Fonction Trouver qui retourne la premiere valeur de l'array
Func Trouver($liste)

Select
   Case $liste = "a1"
      $var = $a1
   Case $liste = "a2"
      $var = $a2
   Case $liste = "b1"
      $var = $b1
   ;...
EndSelect

Return $var[0][0]
EndFunc

 
En d'autre terme comment simplifié ce code sans être obligé de me retapé tout mes Arrays dans la partie Select...EndSelect ?

Si je ne suis pas assez clair n'hésitez pas, j'essayerai de faire un code et un post un peu plus propre :roll:

D'ici là, je continu mes recherches dans la doc et le tâtonnement !

Re: [..] Problème de $ dans une fonction

Posté : jeu. 19 juin 2008 21:40
par genaille08
je n'ai pas trop compris mais je vais tenter de t'aider
( je me permet de te tutoyer )
J'ai fait des essais :

Code:
Return $list[0][0]

ou :

Code:
Return "$" & $liste[0][0]

ou encore :

Code:
Eval("liste") & [0][0]
il manque un "=" la
il faut que tu fasse

Code : Tout sélectionner

return $liste = [0] [0]
ensuite pour

Code : Tout sélectionner

Select
   Case $liste = "a1"
      $var = $a1
   Case $liste = "a2"
      $var = $a2
   Case $liste = "b1"
      $var = $b1
   ;...
EndSelect
tu peux faire

Code : Tout sélectionner

while 1
    $b = 0
    $nombre du array = $b +1
  for 1 to (nombre de array dans ta liste) step 1
   select $liste
        case $a & $b
$var = $a & $b
exitloop
exitloop
endselect
next
wend [/code]
pareil pour la déclaration des valeurs
( pour la déclaration pas besoin du dim )

j'espere que vous en avez compris le principe et vous avoir aider
Tlem je pense qu'il y aurrait besoin d'un eclaircissement de mon code s'il te plait ...

Re: [..] Problème de $ dans une fonction

Posté : jeu. 19 juin 2008 22:26
par Tlem
J'avoue ne vous avoir compris ni l'un, ni l'autre.
Je veux bien donner un coup de main si c'est possible, mais pour cela il me faut un bout de code plus ou moins fonctionnel et me dire ce qu'il doit faire précisément.

Etant sur la traduction de la doc + plusieurs autres choses, je n'ai pas le temps de créer tout de A à Z.

Re: [..] Problème de $ dans une fonction

Posté : jeu. 19 juin 2008 22:36
par jbnh
Oula, faites des postes plus court, plus concit, je sais même pas le probleme... tu obtiens une erreur? laquelle? ou tu veux juste éclaircir ton code, mais lequel?

Repose la problématique et je repasserai jeter un coup d'oeil

Re: [..] Problème de $ dans une fonction

Posté : jeu. 19 juin 2008 23:29
par genaille08
ok beh avec des mots se sera plus simple
je vous avous que moi non plus je n'ai pas trouvé ce qu'était son probleme
mais je pense qu'aprés mur reflexion il voulait un moyen pour ne pas avoir a déclaré toutes ses arrays a la main
ses arrays ont le nom de : a1, a2, a3, b1, ...
et donc j'vais proposé un bout de script qui a chaque passage augmenté le nombre de sa array de +1, ce qui faciletait deja les chose
ensuite il voulait faire la même chose mais les avec un select pour une GUI, sa se complique ...
et sa je ne sais pas trop le faire
mais comme il ne nous dit pas qu'est-ce qu'il veut declarer dans ses array et bien je ne sais pas si on peut remplacer un "$var = $var + 1" par une formule mathématiques un peu plus simple ur le principe de fonctionnement
donc j'attend des information du créateur ...

Re: [..] Problème de $ dans une fonction

Posté : ven. 20 juin 2008 10:02
par tolf
obi_one a écrit :

Code : Tout sélectionner

Func Trouver($liste)

Select
   Case $liste = "a1"
      $var = $a1
   Case $liste = "a2"
      $var = $a2
   Case $liste = "b1"
      $var = $b1
   ;...
EndSelect

Return $var[0][0]
EndFunc
Il faut faire

Code : Tout sélectionner

Return Eval($var & "[0][0]")