Page 1 sur 1

[..] Faire des listes par tour de boucle For

Posté : lun. 28 oct. 2013 15:09
par Chrisna
Bonjour à tous,
j'ai une application qui ne lit pour l'instant que 2 cartes et je voudrais qu'à chaque tour de boucles For, qu'elle enregistre une liste de paramètres. Bonc dans ce cas ci précis, je devrais avoir un tableau de 2 colonnes, ce qui n#est pas encore le cas. Je n'obtiens que celui du dernier tour.
Quelqu'un pourrait-il me venir en aide?

Code : Tout sélectionner

Func __lireCarte()
For $i = 0 To $Nbre_de_carte -1
$ObjList1 = ObjCreate("System.Collections.ArrayList") ; create

$ObjList1.Add($param1) ; add value
$ObjList1.Add($param2)
$ObjList1.Add($param3)
$ObjList1.Add($param4)
$ObjList1.Add($param5)
$ObjList1.Add($param6)
$ObjList1.Add($param7)
$ObjList1.Add($param8)
$ObjList1.Add($param9)
$ObjList1.Add($param10)

$param1 = $ObjList.Item(0)     ; get value
$param2 = $ObjList1.Item(1)
$param3 = $ObjList1.Item(2)
$param4 = $ObjList1.Item(3)
$param5 = $ObjList1.Item(4)
$param6 = $ObjList1.Item(5)
$param7 = $ObjList1.Item(6)
$param8 = $ObjList1.Item(7)
$param9 = $ObjList1.Item(8)
$param10 = $ObjList1.Item(9)

$array_Liste_info = $ObjList1.ToArray ; list to array


Next
Return $array_Liste_info

Re: [..] Faire des listes par tour de boucle For

Posté : lun. 28 oct. 2013 16:23
par TopXm
Hello :)

Pourquoi ne pas passer par un tableau "classique made in AutoIT" ?

Quoiqu'il en soit, le fait de faire ton initialisation de tableau dans ta boucle fait qu'à chaque tour de boucle

tu créés à nouveau le tableau, donc logique qu'au final tu n'en as qu'un seul.

Pis, fichtre ton code avec du EndIf qui se balade, des variables $Param... qui sortent d'on ne sait où, pas de fin de fonction ...

il est pas un iota testable ...

Je ne sais pas si ceci va t'aider, mais bon, sait-on jamais :)

Code : Tout sélectionner

#include <array.au3>

Local $ARR = __lireCarte()

_ArrayDisplay($ARR)

Func __lireCarte()
    Local $ObjList1 = ObjCreate("System.Collections.ArrayList") ; create
    For $i = 0 To 2
        $ObjList1.Add("param1-" & $i) ; add value
        $ObjList1.Add("param2-" & $i)
    Next
    Local $array_Liste_info = $ObjList1.ToArray ; list to array
    Return $array_Liste_info
EndFunc

Re: [..] Faire des listes par tour de boucle For

Posté : lun. 28 oct. 2013 19:10
par Chrisna
En fait c'est juste une partie du code, car les paramètres sont récupérer par un _guicontrollistview_getitemText.
Au final j'ai fait une initialisation de tableau et j'ai stocker les paramètres par index.
Mais j'aurai bien voulu savoir comment faire pour une liste. Si je dois en stocker autant que je veux.
Donc sur ton conseil je vais tester avec une initialisation hors de ma boucle demain vu que je n'ai pas l'application chez moi.
Merci TopXm

Re: [..] Faire des listes par tour de boucle For

Posté : mer. 30 oct. 2013 14:09
par Chrisna
Salut TopXm,
la solution alternative qui marche avec des tableaux classique:

Code : Tout sélectionner

$$array_Liste_info[$i][0] = $param1
   $array_Liste_info[$i][1] = $param2
   $array_Liste_info[$i][2] = $param3
   $array_Liste_info[$i][3] = $param4
   $array_Liste_info[$i][4] = $param5
   $array_Liste_info[$i][5] = $param6
   $array_Liste_info[$i][6] = $param7
   $array_Liste_info[$i][7] = $param8
   $array_Liste_info[$i][8] = $param9
   $array_Liste_info[$i][9] = $param10
mais je voudrais vraiment savoir comment ajouter des listes dans un tableaux si je devais utiliser ma premiere idee.
Je ne peux créer ma liste hors de la boucle vu que les parametres sont ceux par carte lu. j ai fais une discution sur les valeurs de mon $i vu que je n ai que 2 cartes pour l'instant mais la j ai toujours une seule liste mais cette fois la 1ere.
Mon probleme c'est d'ajouter des listes. j ai l'impression que le $ObjList."ToArray" efface la liste et la rempli de nouveau.

Re: [..] Faire des listes par tour de boucle For

Posté : mer. 30 oct. 2013 14:33
par mikell
Au pif, peut-être qqe chose comme ça

Code : Tout sélectionner

Local $obj, $n = 0
For $obj in $ObjList1
  $array_Liste_info[$i][$n] = $obj
  $n += 1
Next

Re: [..] Faire des listes par tour de boucle For

Posté : mer. 30 oct. 2013 16:53
par Chrisna
salut Mikell,
je vais essayer cette solution. Demain je posterai un feedback.