Seite 1 von 1

Liste in Map >_<

Verfasst: 08.09.2010 12:48
von Bobo-Jack
Zeit für ein absolutes Anfängerprblem:

Für mein Programm brauche ich eine Map (Geschwindigkeit beim Zugriff) bei der jedes Map Element eine Strukturierte Liste ist. Lösung sieht so aus:

Code: Alles auswählen

    Structure GroupMember
      Name.s         
      Password.s
      InfluenceArea.s
    EndStructure
   
    Structure Group
      List Members.GroupMember()
    EndStructure
    
    NewMap Groups.Group()
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    AddMapElement(Groups(), "UserGroup")
     AddElement(Groups()\Members())
      Groups("UserGroup")\Members()\Name.s          = "Admin"
      Groups("UserGroup")\Members()\InfluenceArea.s = "Desktop"
      Groups("UserGroup")\Members()\Password.s      = "Blume"
     AddElement(Groups()\Members())
      Groups("UserGroup")\Members()\Name.s          = "Fun"
      Groups("UserGroup")\Members()\InfluenceArea.s = "Games Folder"
      Groups("UserGroup")\Members()\Password.s      = "pwrd"
     
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    Key$         = "UserGroup"
    GroupElement = 2
    
    SelectElement(Groups(Key$)\Members(), GroupElement)
    
    Debug "Group Member: "+Groups(Key$)\Members()\Name.s
    Debug "Influence: "   +Groups(Key$)\Members()\InfluenceArea.s
    Debug "Password: "    +Groups(Key$)\Members()\Password.s
Wer den Code ausführt wird 'The list doesn't have a current element' erhalten. Egal, wie ich veruche, an die Daten ranzukommen.
Wenn man die Zeile mit SelectElement weglässt wird das erste Listenelement genommen. :?

Bin echt geschpannt wie die Lösung aussieht <)

Re: Liste in Map >_<

Verfasst: 08.09.2010 12:55
von DarkDragon
Du hast den Listenindex von 2 genommen, aber es gibt nur 2 Elemente, also bist du 1 drüber hinaus:

Code: Alles auswählen

    Structure GroupMember
      Name.s         
      Password.s
      InfluenceArea.s
    EndStructure
   
    Structure Group
      List Members.GroupMember()
    EndStructure
   
    NewMap Groups.Group()
   
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    AddMapElement(Groups(), "UserGroup")
     AddElement(Groups()\Members())
      Groups()\Members()\Name.s          = "Admin"
      Groups()\Members()\InfluenceArea.s = "Desktop"
      Groups()\Members()\Password.s      = "Blume"
     AddElement(Groups()\Members())
      Groups()\Members()\Name.s          = "Fun"
      Groups()\Members()\InfluenceArea.s = "Games Folder"
      Groups()\Members()\Password.s      = "pwrd"
     
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    Key$         = "UserGroup"
    GroupElement = 1
   
    SelectElement(Groups(Key$)\Members(), GroupElement)
   
    Debug "Group Member: "+Groups(Key$)\Members()\Name.s
    Debug "Influence: "   +Groups(Key$)\Members()\InfluenceArea.s
    Debug "Password: "    +Groups(Key$)\Members()\Password.s

Re: Liste in Map >_<

Verfasst: 08.09.2010 12:56
von STARGÅTE
PureBasic Hilfe hat geschrieben: SelectElement(LinkedList(), Position)

[...] Das erste Element befindet sich an Position 0, das nächste an 1 und so weiter. [...]
Element 2 existiert bei dir nicht, damit gibt es nach SelectElement kein aktuellen Element!

Du hast nur Element 0 und Element 1 ...

Das ab 0 gezählt wird, trifft auf viele Dinge in Purebasic und andere Sprachen zu!

BTW: Willkommen im Forum

Gelöst

Verfasst: 08.09.2010 13:15
von Bobo-Jack
Danke schön!
Das wars, ich wusste nicht dass der Index bei 0 anfängt und nicht bei 1.
Cool dass hier so schnell geantwortet wird :D

( Ich fasses nicht das schreibt man tausende Zeilen Code und dann läufts nicht wegen einer Zahl >_< )