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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Chrisna
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 21 oct. 2013 10:29
Status : Hors ligne

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

#1

Message 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
Modifié en dernier par Chrisna le lun. 28 oct. 2013 22:05, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

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

#2

Message 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
Chrisna
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 21 oct. 2013 10:29
Status : Hors ligne

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

#3

Message 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
Chrisna
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 21 oct. 2013 10:29
Status : Hors ligne

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

#4

Message 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.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

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

#5

Message 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
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Chrisna
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 21 oct. 2013 10:29
Status : Hors ligne

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

#6

Message par Chrisna »

salut Mikell,
je vais essayer cette solution. Demain je posterai un feedback.
Répondre