Frage zur Daten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Frage zur Daten

Beitrag von marcelx »

Hallo,

ich habe Daten in der Form (als Beispiel):

zur "A" gehört "1", "2" und zur "1" gehört "Eins", zur "2" gehört "Zwei"
zur "B" gehört "4" und zu "4" gehört "OK"
zur "C" gehört "4", "2", "51" und zu "4" gehört "lala" zu "2" gehört "mama" und zu "51" gehört "papa"

Ich will wissen z.B. was gehört zur "C" und "2" ( => "mama")

Hat jemand eine Idee wie ich meine Daten organisieren kann.
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Frage zur Daten

Beitrag von Kiffi »

kann man beispielsweise mit einer Map machen. Der Key wird dann aus Buchstabe + Zahl gebildet.

Code: Alles auswählen

NewMap myMap.s()

myMap("A|1")  = "Eins"
myMap("A|2")  = "Zwei"

myMap("B|4")  = "OK"

myMap("C|4")  = "lala"
myMap("C|2")  = "mama"
myMap("C|51") = "papa"

Debug myMap("C|2")
Kommt letztendlich darauf an, was Du damit machen willst. Wenn es komplexer werden soll, kann man auch über den Einsatz einer Datenbank nachdenken.

Grüße ... Peter
Hygge
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Frage zur Daten

Beitrag von marcelx »

Danke Kiffi.
Ich präzisiere mein Problem:
Ich will alle Daten, welchen zur "A" gehören:
1 Eins
2 Zwei

Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Frage zur Daten

Beitrag von Nino »

Du kannst z.B. eine Adjazenzliste oder -matrix anlegen.
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Frage zur Daten

Beitrag von marcelx »

Danke Nino, leider weis ich nicht wie ich dass interpretieren solle.
Ich muss noch dazu sagen, die Daten das z.B. zur "A" gehören keine Relation zu der andere Daten haben
Win-10, PB 5.31 (Windows - x86)
ST4242
Beiträge: 42
Registriert: 29.10.2011 16:54

Re: Frage zur Daten

Beitrag von ST4242 »

Hallo,

vielleicht geht es mit verschachtelten Maps

Code: Alles auswählen

; zur "A" gehört "1", "2" und zur "1" gehört "Eins", zur "2" gehört "Zwei"
; zur "B" gehört "4" und zu "4" gehört "OK"
; zur "C" gehört "4", "2", "51" und zu "4" gehört "lala" zu "2" gehört "mama" und zu "51" gehört "papa"
; 
; Ich will wissen z.B. was gehört zur "C" und "2" ( => "mama")

Structure DatenMap
  Map daten.datenmap()
EndStructure
NewMap mapdaten.datenmap()
AddMapElement(mapdaten(),"A")
AddMapElement(mapdaten()\daten(),"1")
AddMapElement(mapdaten()\daten()\daten(),"Eins")

AddMapElement(mapdaten()\daten(),"2")
AddMapElement(mapdaten()\daten()\daten(),"Zwei")

AddMapElement(mapdaten(),"B")
AddMapElement(mapdaten()\daten(),"4")
AddMapElement(mapdaten()\daten()\daten(),"OK")

;suche nach a 2
If FindMapElement(mapdaten(),"A")
  If FindMapElement(mapdaten()\daten(),"2")
    Debug MapKey(mapdaten()\daten()\daten())
  EndIf
EndIf

Falls die Tiefe der verschachtelung bekannt ist, kann es vielleicht auch einfacher gestaltet werden.

Gruß

Stefan
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Frage zur Daten

Beitrag von marcelx »

Danke Stefan,
so ist es wunderbar und ich habe dabei was gelernt

Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Frage zur Daten

Beitrag von Kiffi »

@ST4242:

geht sogar noch ein wenig einfacher:

Code: Alles auswählen

;suche nach A 2
Debug MapKey(mapdaten("A")\daten("2")\daten())
Hygge
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: Frage zur Daten

Beitrag von marcelx »

Zusatz Frage:
wie kann ich für z.B. "A" die Werte "1" /"Eins" und "2" / "Zwei"
in eine ForEach loop?
Win-10, PB 5.31 (Windows - x86)
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Frage zur Daten

Beitrag von Nino »

marcelx hat geschrieben:Zusatz Frage:
wie kann ich für z.B. "A" die Werte "1" /"Eins" und "2" / "Zwei"
in eine ForEach loop?
Es ist nicht verständlich, was du meinst. So kann dir niemand eine Antwort geben.
Du solltest vollständige und klare Sätze schreiben.
Antworten