Daten mit einer Schleife aus xml datei auslesen?

Anfängerfragen zum Programmieren mit PureBasic.
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

oder die die's suchen
Win11 x64 | PB 6.20
Ronny S.
Beiträge: 73
Registriert: 24.11.2008 16:08

Beitrag von Ronny S. »

Cabble hat geschrieben:hoppla ^^
so viel is das? xD
naja... hier is die xml: ftp://ftp.cabble.ca.funpic.de/Projekt%2 ... ts_eng.xml
Dann würde ich den Link gleich mal mit anpassen, weniger ist manchmal mehr, auch ohne irgendwelchen Schnickschnack.
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

Also bei mir will er zuerst ein Passwort wegen FTP.
So, dann ich bin drauf, keine Datei.
Win11 x64 | PB 6.20
Benutzeravatar
Cabble
Beiträge: 32
Registriert: 24.01.2009 13:48
Wohnort: Mecklenburg-Vorpommer O.o
Kontaktdaten:

Beitrag von Cabble »

habs vor 2 min geändert. wenns jetzt moch nich funzt dann kann ich bei euch ne pm schicken mit dem login. hab extra ein unterkonto für die öffentlichkeit ^^. trotzdem will ich hier keine userdaten in den thread schreiben. is aber kein problem per pn.
Ronny S.
Beiträge: 73
Registriert: 24.11.2008 16:08

Beitrag von Ronny S. »

Wir wollen keine Daten und auch kein Bild von Dir..
Poste einfach den Link so wie er RICHTIG ist, oder soll ich es machen :
http://cabble.ca.funpic.de/Projekt%20At ... ts_eng.xml
Benutzeravatar
Cabble
Beiträge: 32
Registriert: 24.01.2009 13:48
Wohnort: Mecklenburg-Vorpommer O.o
Kontaktdaten:

Beitrag von Cabble »

ok danke
habs geändert
jetzt sollte es funktionieren
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

fremde Links posten kostet nen Eu! :mrgreen:
Win11 x64 | PB 6.20
Benutzeravatar
Cabble
Beiträge: 32
Registriert: 24.01.2009 13:48
Wohnort: Mecklenburg-Vorpommer O.o
Kontaktdaten:

Beitrag von Cabble »

was versteht man unter fremde links? xD bzw. was sind nicht-fremde? ^^

wie kann ich dann die struktur in meine schleifen einbeziehen? >.<
sorry aber ich bin hier noch ein bischen ungelernt. mein code sieht bis jetzt auch nicht so sehr professionell aus. falls sich jemand für meine "tollen" kenntnisse interessiert ist hier der code, wie ich ihn derzeitig habe: attcalc.pb

bitte nicht aufregen, was rückgabewerte betrifft. :roll:
Benutzeravatar
Kiffi
Beiträge: 10711
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

@Cabble:

ich habe mir jetzt nicht alles durchgelesen, aber mit dem folgenden Code
solltest Du weiterkommen. Die Structure, die Dir Kaeru Gaman
empfohlen hat, habe ich gleich mit eingebaut, weil sie sinnvoll ist. Schau
Dir bitte das Prinzip an, nach dem ich vorgegangen bin:

Code: Alles auswählen

EnableExplicit

Structure unitdata
  unittype.l
  unitname.s
  mindam.l
  mindam2.l
  maxdam.l
  maxdam2.l
  hitpoints.l
  atttype.l
  atttype2.l
  cooldown.f
  cooldown2.f
  armtype.l
  armor.f
  regeneration.f
EndStructure

Global NewList Units.unitdata()

Procedure LoadUnitsXML(XmlPath.s) 
  
  Protected XML
  Protected UnitsNode
  Protected NodeCounter
  
  XML = LoadXML(#PB_Any, XmlPath)
  
  If XML
    
    Repeat
      
      UnitsNode = XMLNodeFromPath(RootXMLNode(XML), "dataroot/units[" + Str(NodeCounter) + "]")
      
      If UnitsNode = 0 
        Break
      EndIf
      
      NodeCounter + 1
      
      AddElement(Units())
      
      With Units()
        \unitname     = GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Unit"))
        \mindam       = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Minimal_Damage")))
        \mindam2      = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Minimal_Damage_2")))
        \maxdam       = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Maximal_Damage")))
        \maxdam2      = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Maximal_Damage_2")))
        \hitpoints    = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Hitpoints")))
        \atttype      = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Attack_Type")))
        \atttype2     = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Attack_Type_2")))
        \cooldown     = ValF(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Cooldown")))
        \cooldown2    = ValF(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Cooldown_2")))
        \armtype      = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Armor_Type")))
        \armor        = Val(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Armor")))
        \regeneration = ValF(GetXMLNodeText(XMLNodeFromPath(UnitsNode, "Regeneration")))
      EndWith
      
    ForEver
    
    FreeXML(XML)
    
  EndIf
  
EndProcedure

LoadUnitsXML("d:\units_eng.xml")

ForEach Units()
  With Units()
    Debug \unitname     
    Debug \mindam       
    Debug \mindam2      
    Debug \maxdam       
    Debug \maxdam2      
    Debug \hitpoints    
    Debug \atttype      
    Debug \atttype2     
    Debug \cooldown     
    Debug \cooldown2    
    Debug \armtype      
    Debug \armor        
    Debug \regeneration 
  EndWith
  Debug "--------"
Next  
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Cabble
Beiträge: 32
Registriert: 24.01.2009 13:48
Wohnort: Mecklenburg-Vorpommer O.o
Kontaktdaten:

Beitrag von Cabble »

Danke für die Mühe!!! :D :D :D

Die Lösung sieht super aus! Genau das wonach ich gesucht habe *freu* ^^
Antworten