Listes Chainées

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Listes Chainées

Message par langa68 »

Bonjour,
J'aimerais comprendre la fonction "ListesChainées" et pour cela j'ai écrit un petit code en me basant sur le fichier aide de PB. Malheureusement mon code ne fonctionne pas.Error: Line 55-Fichier() is not aa function, array, macro or linked list
Qui peut me dire quelle est mon erreur?

Voici mon code:

Code : Tout sélectionner

Structure Fichier
  Name.s
  Alter.l
  Wohnort.s
EndStructure
NewList Fichier.Fichier()
;----Procedures:
Declare Fenetre()
Declare Ajout_Element()
Declare Quitter()


;----Programme:
Fenetre()
  
Procedure Fenetre()
  x=80
  y=30
  If OpenWindow(Fenetre, 216, 0, 400, 150, "Listes Chaînées ",  #PB_Window_SystemMenu | #PB_Window_TitleBar |#PB_Window_ScreenCentered)
    If CreateGadgetList(WindowID(Fenetre_creation_fichiers))
      x=x-95
      TextGadget(1, x, y, 90, 20, "Nom:",#PB_Text_Right)
      x=x+100
      StringGadget(2, x,  y, 306, 20, "")
      y=y+30
      ButtonGadget(3, x,y , 60, 40,"Quitter"); "Quitter")
    EndIf
  EndIf
  Repeat
    Event=WaitWindowEvent()
    If Event=#PB_Event_Gadget
      Select EventGadget()
        Case 2;Nom    
          Nom$ = GetGadgetText(8)
        Case 3
          Ajout_Element()
          Quitter()  
        Case#PB_Event_CloseWindow 
      EndSelect 
    EndIf
  Until Event =#PB_Event_CloseWindow
EndProcedure
  
Procedure Quitter() 
  x=x-70
  y=y-155
  MessageRequester("Information","Quitter?",#PB_MessageRequester_Ok)
  End
EndProcedure

Procedure Ajout_Element()
  AddElement(Fichier())
  Personne()\Nom = Nom$
EndProcedure
langa68
PB V4.31
Qui gardera les gardes?
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Listes Chainées

Message par TazNormand »

Salut

déclare ta liste chaînée en global :

Code : Tout sélectionner

Global NewList Fichier.Fichier()
ensuite, tu vas avoir une erreur sur

Code : Tout sélectionner

Personne()\Nom = Nom$
Normal puisque Personne() ne correspond à rien, je pense que la syntaxe correcte serait plutôt :

Code : Tout sélectionner

Fichier()\Name=nom$
Et surtout, vas jeter un oeil au tuto sur les listes chaînées, pas seulement la doc de PB qui est quelque peu succinte
Image
Image
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Listes Chainées

Message par djes »

Ta liste chaînée n'est pas visible à l'intérieur de ta procédure. Soit tu la mets en Shared (partagée, visible à l'intérieur de ta procédure), soit au début du programme en Global (visible par toutes les procédures)

Code : Tout sélectionner

;
;
Structure Fichier
	Name.s
	Alter.l
	Wohnort.s
EndStructure

NewList Fichier.Fichier()
;----Procedures:
Declare Fenetre()
Declare Ajout_Element()
Declare Quitter()

;----Programme:
Fenetre()

Procedure Fenetre()
	x=80
	y=30
	If OpenWindow(Fenetre, 216, 0, 400, 150, "Listes Chaînées ", #PB_Window_SystemMenu | #PB_Window_TitleBar |#PB_Window_ScreenCentered)
		If CreateGadgetList(WindowID(Fenetre_creation_fichiers))
			x=x-95
			TextGadget(1, x, y, 90, 20, "Nom:",#PB_Text_Right)
			x=x+100
			StringGadget(2, x, y, 306, 20, "")
			y=y+30
			ButtonGadget(3, x,y , 60, 40,"Quitter"); "Quitter")
		EndIf
	EndIf
	Repeat
		Event=WaitWindowEvent()
		If Event=#PB_Event_Gadget
			Select EventGadget()
			Case 2;Nom
				Nom$ = GetGadgetText(8)
			Case 3
				Ajout_Element()
				Quitter()
			Case#PB_Event_CloseWindow
			EndSelect
		EndIf
	Until Event =#PB_Event_CloseWindow
EndProcedure

Procedure Quitter()
	x=x-70
	y=y-155
	MessageRequester("Information","Quitter?",#PB_MessageRequester_Ok)
	End
EndProcedure

Procedure Ajout_Element()
	Shared Fichier()
	AddElement(Fichier())
	;Personne()\Nom = Nom$
EndProcedure
Edit: Grilled par taznormand ;)
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Re: Listes Chainées

Message par langa68 »

Merci pour la réponse.
Je pense que pour sauvegarder les données créées avec les Listes Chainées, on procède de la même façon qu'avec les autres fichiers. C'est a dire avec CreateFile , WriteStringN ,OpenFile , ReadFile etc...
langa68
PB V4.31
Qui gardera les gardes?
Anonyme

Re: Listes Chainées

Message par Anonyme »

Va sur ton compte downloadé la dernière version 8)
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Re: Listes Chainées

Message par langa68 »

la dernière version de quoi??
Est-ce la réponse à ma question??
je ne comprend pas!!
langa68
PB V4.31
Qui gardera les gardes?
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Listes Chainées

Message par venom »

Tu va telecharger la version 4.40 de purebasic il y a une options qui gère les liste chainée :wink:





@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Re: Listes Chainées

Message par langa68 »

Merci, mais n'y a-t' il pas de possibilité avec ma version?
langa68
PB V4.31
Qui gardera les gardes?
Anonyme

Re: Listes Chainées

Message par Anonyme »

tu as quelle version exactement , la 4.2 ?
Télécharge la 4.40 b5 , tu auras les maps & co
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Re: Listes Chainées

Message par langa68 »

merci
langa68
PB V4.31
Qui gardera les gardes?
Anonyme

Re: Listes Chainées

Message par Anonyme »

Ouais...
ça pue l'utilisateur Pirate....

Image
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Listes Chainées

Message par TazNormand »

Pas Forcément Cpl.Bator, mais j'avoue que j'ai eu la même idée, mais laissons lui le bénéfice du doute (présomption d'innocence), quand je me suis inscrit sur le forum, j'avais aussi une version pirate, puis j'ai laissé un peu de côté PB, et je suis revenu, mais avec une version officielle.

A noter qu'on peut de nouveau payer sa licence avec PayPal (vu sur la page de téléchargement avec votre compte, en bas à droite)
Image
Image
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Re: Listes Chainées

Message par langa68 »

Ce n'est pas une version pirate. C'est la version 4.02.
langa68
PB V4.31
Qui gardera les gardes?
Anonyme

Re: Listes Chainées

Message par Anonyme »

et pourquoi tu n'a pas la dernière version ? 8O
Avatar de l’utilisateur
langa68
Messages : 56
Inscription : dim. 29/avr./2007 16:03

Re: Listes Chainées

Message par langa68 »

PS au message précédant.
Si vous n'avez pas envie d'aider un débutant, dites le clairement. :twisted: :twisted: :twisted:
langa68
PB V4.31
Qui gardera les gardes?
Répondre