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

merci d'avance
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
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