[RESOLU]le XML et le Purebasic .. lire variable

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
3d0uard0
Messages : 27
Inscription : dim. 22/août/2010 22:36

[RESOLU]le XML et le Purebasic .. lire variable

Message par 3d0uard0 »

Bonjour à tous !

Je vous explique : J'ai un fichier launcher.xml et j'aimerai lire ce que à dedans :

Code : Tout sélectionner

name_serveur$ = "Nom du serveur"
rate_xp$ = "Rate d'xp"
rate_ka$ = "rate de kamas"
rate_drop$ = "Rate de drop"
J'aimerai récupérer les variables qu'il y a dedans pour les utiliser dans mon programme. exemple :

Code : Tout sélectionner

PrintN("Les rate d'xp sont :" +rate_xp$)
Si cela est possible de le faire avec un fichier .txt ou autre cela me vas aussi !!

Merci d'avance pour vos réponses !! Bonne soirée =)
Dernière modification par 3d0uard0 le jeu. 23/sept./2010 16:44, modifié 2 fois.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: le XML et le Purebasic .... Merci d'avance pour vos répo

Message par venom »

Salut 3d0uard0,

voici le code fournis pas la doc de purebasic F1 regarde deja ça si sa peut t'avancer :

Code : Tout sélectionner

#Window     = 0
#TreeGadget = 0
#XML        = 0

; This procedure fills our TreeGadget, by adding the current node
; and then exploring all childnodes by recursively calling itself.
;
Procedure FillTree(*CurrentNode, CurrentSublevel)

  ; Ignore anything except normal nodes. See the manual for
  ; XMLNodeType() for an explanation of the other node types.
  ;
  If XMLNodeType(*CurrentNode) = #PB_XML_Normal
  
    ; Add this node to the tree. Add name and attributes
    ;
    Text$ = GetXMLNodeName(*CurrentNode) + " (Attributes: "
        
    If ExamineXMLAttributes(*CurrentNode)
      While NextXMLAttribute(*CurrentNode)
        Text$ + XMLAttributeName(*CurrentNode) + "=" + Chr(34) + XMLAttributeValue(*CurrentNode) + Chr(34) + " "
      Wend
    EndIf
    
    Text$ + ")"
    
    AddGadgetItem(#TreeGadget, -1, Text$, 0, CurrentSublevel)
        
        
    ; Now get the first child node (if any)
    ;    
    *ChildNode = ChildXMLNode(*CurrentNode)
    
    ; Loop through all available child nodes and call this procedure again
    ;
    While *ChildNode <> 0
      FillTree(*ChildNode, CurrentSublevel + 1)      
      *ChildNode = NextXMLNode(*ChildNode)
    Wend        
  
  EndIf

EndProcedure

FileName$ = OpenFileRequester("Choose XML file...", "", "XML files (*.xml)|*.xml|All files (*.*)|*.*", 0)
If FileName$ <> ""

  If LoadXML(#XML, FileName$)

    ; Note: 
    ;   The LoadXML() succeed if the file could be read. This does not mean that
    ;   there was no error in the XML though. To check this, XMLStatus() can be
    ;   used.
    ;
    ; Display an error message if there was a markup error
    ;
    If XMLStatus(#XML) <> #PB_XML_Success
      Message$ = "Error in the XML file:" + Chr(13)
      Message$ + "Message: " + XMLError(#XML) + Chr(13)
      Message$ + "Line: " + Str(XMLErrorLine(#XML)) + "   Character: " + Str(XMLErrorPosition(#XML))
      MessageRequester("Error", Message$)
    EndIf
    
    ; Note:
    ;   Even if there was an error in the XML, all nodes before the error position
    ;   are still accessible, so open the window and show the tree anyway.
    ;
    If OpenWindow(#Window, 0, 0, 500, 500, "XML Example", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
      TreeGadget(#TreeGadget, 10, 10, 480, 480)
      
      ; Get the main XML node, and call the FillTree() procedure with it
      ;
      *MainNode = MainXMLNode(#XML)      
      If *MainNode
        FillTree(*MainNode, 0)
      EndIf
      
      ; Expand all nodes for a nicer view
      ;
      For i = 0 To CountGadgetItems(#TreeGadget) - 1
        SetGadgetItemState(#TreeGadget, i, #PB_Tree_Expanded)
      Next i
      
      ; Wait for the window close event.
      ;
      Repeat
        Event = WaitWindowEvent()
      Until Event = #PB_Event_CloseWindow
    EndIf
        
  Else
    MessageRequester("Error", "The file cannot be opened.")
  EndIf

EndIf






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
3d0uard0
Messages : 27
Inscription : dim. 22/août/2010 22:36

Re: le XML et le Purebasic .... Merci d'avance pour vos répo

Message par 3d0uard0 »

Merci mais je ne comprend pas les commentaires (anglais) donc ça m'avance que légérement ...
3d0uard0
Messages : 27
Inscription : dim. 22/août/2010 22:36

Re: le XML et le Purebasic .. Lire les variables d'un ficher

Message par 3d0uard0 »

Si cela est possible de le faire avec un fichier .txt ou autre cela me vas aussi !!

Merci d'avance pour vos réponses !! Bonne après-midi !

PS : j'ai déjà chercher sur google et sur ce forum mais impossible de trouver quoique ce soit
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: le XML et le Purebasic .. Lire les variables d'un ficher

Message par Ar-S »

Si tu te créés un fichier txt tout con en inversant tes données, tu peux ainsi utiliser le systeme de préférence qui est enfantin à maitriser.

Par exemple ton fichier se nomme servpref.txt et contient :

Code : Tout sélectionner

[truc]
NOMSERVEUR = serveur_name$
RATEXP = rate_xp$
Ton programme ressemblerait à ça :

Code : Tout sélectionner

if OpenPreferences("servpref.txt")
  PreferenceGroup("truc")
  serveur.s="Nom de la variable serveur : "+ReadPreferenceString("NOMSERVEUR","")
  ratexp.s="Nom de la variable Rate Xp : "+ReadPreferenceString("RATEXP","")
  
  MessageRequester("Infos",serveur+chr(10)+ratexp) 
  end
else
  MessageRequester("Erreur","ça chie, je ne trouve pas servpref.txt") 
  end
endif
Voilou
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
3d0uard0
Messages : 27
Inscription : dim. 22/août/2010 22:36

Re: le XML et le Purebasic .. Lire les variables d'un ficher

Message par 3d0uard0 »

Ah ! Voilà ! Merci merci énormément !!
Répondre