Page 1 sur 1

passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 13:28
par zazoux
Bonjour,

je serais interessé de savoir si il y a moyen de passer les données contenues dans des arrays en lists et réciproquement. :idea:

merci d'avance

Re: passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 14:59
par Backup
oui , en lisant les membres un par un ... :)
(c'est tres rapide )

exemple :

Code : Tout sélectionner



Global newlist maliste.s() ; une liste de chaine de caractere
Global Dim montableau.s(10,10,10) ; ici pour un tableau de chaine de caracteres
Declare  Tab_to_list()
Declare  List_to_Tab()


;on va remplir le tableau avec des données aléatoire
For x=0 to 10
	For y=0 to 10
		For z=0 to 10
			montableau.s(x,y,z) =chr(random(122,32))  ; on met des caracteres au hazard dans le tableau
		Next z
	Next y
Next x
; ici le tableau est remplis de caracteres

; on affiche un memebre au hasar pour voir la valeur
debug  montableau.s(1,8,10)
calldebugger

; exemple 1 on remplis la list avec le tableau existant
Tab_to_list()

; ici la list est remplis par le tableau ; a verifier dans le debugger
calldebugger 

FreeArray(montableau.s()) ; je detruit le tableau pour pouvoir le creer et le remplir a nouveau


List_to_Tab()
; ci on a re-rempli le tableau avec la liste
;pour verifier que rien n'a bouger  on affiche le meme membre qu'au debut
debug  montableau.s(1,8,10)
Calldebugger





;- Zone Procedure 

; on va transferer le tableau dans notre liste chainée

Procedure Tab_to_list()
	ResetList(maliste.s()) ; met le pointeur de list au debut de la liste
	For x=0 to 10
		For y=0 to 10
			For z=0 to 10
				AddElement(maliste.s()) ; ajoute un element dans la liste
				maliste.s()=montableau.s(x,y,z)  ; on ajoute donc l'element de tableau
			Next z
		Next y
	Next x
	; Fin
EndProcedure


Procedure List_to_Tab()
	ResetList(maliste.s()) ; met le pointeur de list au debut de la liste
	Dim montableau.s(10,10,10) ; reinitialise le tableau
	
	For x=0 to 10
		For y=0 to 10
			For z=0 to 10
				NextElement(maliste.s()) 
				montableau.s(x,y,z) =maliste.s() ; on ajoute donc l'element de list dans le tableau
			Next z
		Next y
	Next x
	; Fin
EndProcedure

; EPB

Re: passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 15:14
par Fig
+1

Code : Tout sélectionner

Dim Tableau(10)
NewList Liste()

;rempli le tableau
For i=0 To 10
tableau(i)=i
Next i

;copie les données du tableau dans la liste
For i=0 To 10
AddElement(liste())
liste()=tableau(i)
Next i

;affiche les valeurs de la liste pour preuve...
Debug "Contenu de la liste()"
ForEach liste()
Debug liste()
Next

;créé un nouveau tableau vide
Dim Tableau2(10)
;la réciproque... copie de la liste vers le tableau2
i=0
ForEach liste()
Tableau2(i)=liste()
i+1
Next

;affiche les valeurs du tableau2 pour preuve
Debug "Contenu du tableau2"
For i=0 To 10
Debug Tableau2(i)
Next i

Re: passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 15:42
par Backup
Arf ! Fig a ajouté un code avant que j'ai eu le temps de pondre le miens :)
le miens part sur un tableau a 3 éléments Ascii , histoire de montrer que ça marche aussi en multi -dimension :)

Re: passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 16:05
par zazoux
Merci beaucoup :lol:

Re: passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 21:42
par Fig
Dobro> Je me disais que ce n'était pas ton genre de répondre sans un code concret. :wink:
J'ai fait au plus simple... :o

Re: passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 22:47
par Backup
l'essentiel , c'est que ton code soit juste, et il l'est comme d'habitude :)

Re: passer de array à list et reciproquement

Publié : jeu. 20/févr./2014 23:16
par Fig
C'est gentil, mais ça serait malhonnête de prendre le compliment... Car c'est malheureusement faux. :wink:
Mais je m'améliore... Comme nous tous et c'est ça qui est bon: on a tous fait du chemin depuis l'inscription ici :D