Page 1 sur 1

pb avec les listes chaînées

Publié : mer. 02/mars/2005 16:22
par Gillouz
Bonjour,

Il y a une chose que je ne comprends pas vraiment.
Dans la doc et plusieurs fois sur le forum il est dit que les listes chaînées sont globales, pourtant le code suivant ne fonctionne pas correctement, pourriez-vous m’expliquer pourquoi.

Code : Tout sélectionner

Procedure nlTest()
  AddElement(list())
  list() = $7878
EndProcedure


NewList list.l()
nlTest()
End
Merci d’avance pour vos réponses.

Publié : mer. 02/mars/2005 16:32
par Anonyme2
Essaye de mettre le newlist avant la procedure, le compilateur doit savoir d'abord que la liste est crée avant de pouvoir créer le code correspondant.

Code : Tout sélectionner

NewList list.l()

Procedure nlTest()
  AddElement(list())
  list() = $7878
EndProcedure


nlTest()
End

Publié : mer. 02/mars/2005 16:36
par Torp
Je ne sais pas trop pourquoi dans ton cas ca marche pas, mais comme ca, ca marche :

Code : Tout sélectionner

Declare nlTest()

NewList List.l()
nlTest()
End

Procedure nlTest()
  AddElement(List())
  List() = $7878
EndProcedure
...

Publié : mer. 02/mars/2005 16:38
par Torp
Arf... j'ai posté trop vite

Publié : mer. 02/mars/2005 17:03
par Gillouz
Merci les gars,

C'est tellement évident que cela fait au moins deux heures que je me prends la tête dessus :lol: , merci encore pour vos réponses d'une rapidité exceptionnelles.

@+

Publié : mer. 02/mars/2005 21:59
par Dräc
Denis a écrit :Essaye de mettre le newlist avant la procedure, le compilateur doit savoir d'abord que la liste est crée avant de pouvoir créer le code correspondant.

Code : Tout sélectionner

NewList list.l()

Procedure nlTest()
  AddElement(list())
  list() = $7878
EndProcedure


nlTest()
End
Pour etre plus complet (on l'a vu dans un post >ici<), une variable ou une liste sera globale sur la portion de code qui suivra leur déclaration.
Bref, variables et listes, pour qu'elles soient vraiment globales sur l'ensemble du code, se doivent d'etre déclarées au début du code.
"C'est le problème d'un compilateur une passe." pas vrai Denis !? :wink:

Publié : jeu. 03/mars/2005 7:19
par Anonyme2
Dräc a écrit :Pour etre plus complet (on l'a vu dans un post >ici<), une variable ou une liste sera globale sur la portion de code qui suivra leur déclaration.
Bref, variables et listes, pour qu'elles soient vraiment globales sur l'ensemble du code, se doivent d'etre déclarées au début du code.
"C'est le problème d'un compilateur une passe." pas vrai Denis !? :wink:
:wink: