Strukturen als Wort-String

Anfängerfragen zum Programmieren mit PureBasic.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Strukturen als Wort-String

Beitrag von D4uS1 »

Ich würde gerne ein Register programmieren um Name, Bewertung, usw. abzuspeichern. Nun habe ich mir dazu mit linked lists verholfen und eigene Strukturen dazu erstellt. Wenn ich nun allerdings mittels keyboardinkey den Namen eingeben möchte, verlangt PB nach einem String. Dies habe ich wie unten gleich zu sehen wird gemacht, doch nun wird meine Struktur nicht mehr erlkannt, kann mir jemand helfen und mir sagen was daran falsch ist?

Code: Alles auswählen

InitSprite()
InitKeyboard()

OpenScreen(1024, 768, 16, "Filmregister")

Structure Film
 Name.s
 Schauspieler.w
 Bewertung.w
EndStructure

Newlist Film.film

Repeat
ExamineKeyboard()

 StartDrawing(ScreenOutput())
 Drawtext(10, 10, Film()\Name$, 0)
 StopDrawing()
 FlipBuffers()

 Film()\Name$ + KeyboardInkey()

until keyboardpushed(1)
Der gesamte Code ist natürlich länger, ich habe nur die notwendigen Sachen hier eingefügt.
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

Tip:
Zur Sauberkeit und um fehler zu vermeiden solltest Du deine Strukturen anders benennen als die variablen / Listen welche die Struct benutzen.

zb.

Code: Alles auswählen

Structure s_Film
  Name.s
  Schauspieler.w
  Bewertung.w
EndStructure
Newlist syntax ist:

Code: Alles auswählen

NewList Film.s_Film()
Da deine FilmList schon strukturiert ist, sind typenzuweisungen beim Zugriff darauf unzulässig - sind ja schon in der struct definiert.

Code: Alles auswählen

Film()\Name$ + KeyboardInkey()  <-- iss zwar n string aber iss ja oben schon definiert

zu:
Film()\Name + KeyboardInkey()  
Thalius
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

Ich depp, natürlich, thx!

hab jetzt einfach alle mit .s strukturiert, danke!
Benutzeravatar
Thalius
Beiträge: 476
Registriert: 17.02.2005 16:17
Wohnort: Basel / Schweiz

Beitrag von Thalius »

:mrgreen:

Code: Alles auswählen

Structure struct_Film
  Name.s                      ; String .s Definiert hier
  Schauspieler.w
  Bewertung.w
EndStructure

Code: Alles auswählen

Film.struct_Film   ; Weist Film ( mit newlist der liste... ) die Struktur struct_Film zu.

  Film()\Name = "abc"  ; hier muss weder ein .s noch ein $ hin .. :) Du definierst ja oben die structure und hast da .s ( sting) bei name.
Verschachtelt geht auch:

Code: Alles auswählen


Structure struct_Schauspieler
  id.l
  Name.s                     
  Adresse.s
  Geburtstag.l
  ; ...
EndStructure

Structure struct_Film
  Name.s                      ; String .s Definiert hier
  Schauspieler.struct_Schauspieler
  Bewertung.w
EndStructure

FilmDatenbank.struct_Film

; Beispiel
FilmDatenbank\Name = "Knight Rider"
FilmDatenbank\Schauspieler\id          = 01
FilmDatenbank\Schauspieler\Name    = "David Hasselhoff"
FilmDatenbank\Schauspieler\Adresse = "Schrottplatz No. 4"
; ...

FilmDatenbank
-> Name
-> Schauspieler
----> id
----> Name
----> Adresse
----> Geburtstag
-> Bewertung



Thalius
Antworten