pb avec les listes chaînées

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Gillouz
Messages : 17
Inscription : mar. 26/oct./2004 9:40

pb avec les listes chaînées

Message 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.
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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
Torp
Messages : 360
Inscription : lun. 22/nov./2004 13:05

Message 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
...
Torp
Messages : 360
Inscription : lun. 22/nov./2004 13:05

Message par Torp »

Arf... j'ai posté trop vite
Gillouz
Messages : 17
Inscription : mar. 26/oct./2004 9:40

Message 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.

@+
Dräc
Messages : 526
Inscription : dim. 29/août/2004 0:45

Message 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:
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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:
Répondre