ForEach Structure?

Anfängerfragen zum Programmieren mit PureBasic.
NeoChris
Beiträge: 205
Registriert: 21.11.2013 21:17
Wohnort: Schweiz
Kontaktdaten:

ForEach Structure?

Beitrag von NeoChris »

Ich habe eine etwas komplexe Datenstruktur erstellt und möchte gerne mit ForEach alle Strukturfelder und Werte ausgeben. Wie geht das?

Code: Alles auswählen

Structure Test
  Test1.s
  Test2.s
  Test3.s
EndStructure
ForEach Test
  Debug Test
Next
Er sagt Syntax Error. Wie kann ich das machen?
Benutzeravatar
N_Gnom
Beiträge: 149
Registriert: 11.09.2013 19:52

Re: ForEach Structure?

Beitrag von N_Gnom »

Also zuerst einmal Ist das ja nur eine Strukturvorlage.

Code: Alles auswählen

Structure Test
  Test1.s
  Test2.s
  Test3.s
EndStructure
Test.Test
Damit hättest du zumindest schonmal was zum weiterarbeiten.
Ich würde es aber über eine Liste weitermachen und diese kannst du dann auch mit Foreach durchlaufen.

Schlagt mich, wenn ich da falsch liege, weiß im Moment nicht ob man einfache Structuren auch so durchlaufen kann.
Laptop: Win10@64bit - i3 2x2Ghz - 8GB Ram - 1TB HDD
Desktop: Win10@64bit - AMD Ryzen 5 2400G - MSI B450 Tomahawk - 8GB Ram - 240GB SSD
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: ForEach Structure?

Beitrag von Derren »

Gar nicht würde ich sagen.
Die Struktur ist ja fest und nicht dynamisch. Also warum sollte man ForEach benötigen?
Im Regelfall iteriert man ja auch nicht die Eigenschaften eines Objekts, sondern eine Menge an Objekten.
Wie N_Gnom geschrieben hat solltest du wohl eher Listen oder so benützen.
Auch weiß ich nicht ob das jetzt ein Beispiel war, oder ob deine gepostete Struktur das ist was du unter "komplexer Datenstruktur" verstehst.

So werden Strukturen in der Regel benutzt:

Code: Alles auswählen

Structure Person
    Name.s
    ForName.s 
    Age.w 
  EndStructure

  Dim MyFriends.Person(100)

  ; Here the position '0' of the array MyFriend()
  ; will contain one person and it's own information

  MyFriends(0)\Name = "Andersson"
  MyFriends(0)\Forname = "Richard" 
  MyFriends(0)\Age = 32

  MyFriends(1)\Name = "John"
  MyFriends(1)\Forname = "Doe" 
  MyFriends(1)\Age = 0

For i = 0 To 1
  With MyFriends(i)
    Debug "Name: "+ \Name +" Vorname: "+ \Forname +" Alter: "+ Str(\Age)
  EndWith
Next


Signatur und so
Antworten