Seite 1 von 2

Mehrere Werte in eine Variable

Verfasst: 07.04.2007 20:34
von Pandorra
hallo,
gibt es eine möglichkeit in eine Variable mehrere Werte zu speichern?
(Ich möchte ein Programm programmieren wo man sich vorher einloggen muss. Deshalb will ich wissen ob es eine möglichkeit gibt mehrere Werte in eine Variable einzuspeichern?)(ohne eine Structure zu verwenden)
Wenn nein, dann will ich fragen was ich hier falsch mache:

Code: Alles auswählen

Global Profil.s, Passwort.s
Profilname.s =  InputRequester("Spieler","Bitte geben sie Ihren Profilnamen an:","")
Passwort.s =  InputRequester("Spieler","Bitte geben sie Passwort an:","")


Structure Profile
Profilname.s
Passwort.w
EndStructure


Dim Pandora.Profile

Pandora(0)\Profilname = "Pandora"
Pandora(0)\Passwort = Hallo

...
 

Procedure Login(*p.Profile)
If Profil2 = *p\Profilname
Debug "Hallo Pandora"
Else
Debug "Benutzername oder Passwort falsch"
Delay(10000)
End
EndIf 
EndProcedure

Login(*Profile())


ich hoffe ihr könnt mir helfen.

Verfasst: 07.04.2007 20:51
von LukasBanana
Kann es sein dass du gar nicht weißt wie man das "Dim" verwändet? :?
(Früher wusste ich das auch nicht) :oops:

Code: Alles auswählen

Dim Pandora.Profile    ; Falsch
Dim Pandora.Profile(5) ; 6 Variablen 0 - 5

; So kannst du sie wieder abrufen:
Pandora(0)
; ...
Pandora(5)
Hoffe ich konnte helfen :)

Gruß LukasBanana

Verfasst: 07.04.2007 20:54
von ts-soft
Ich hab mal versucht rauszufinden, was Du vorhast, garnicht so einfach :wink:
Ich denke mal in etwa so soll es sein:

Code: Alles auswählen

Global Profil.s, Passwort.s
Profil.s =  InputRequester("Spieler","Bitte geben sie Ihren Profilnamen an:","")
Passwort.s =  InputRequester("Spieler","Bitte geben sie Passwort an:","")


Structure Profile
  Profilname.s
  Passwort.s
EndStructure


Dim Pandora.Profile(9)

Pandora(0)\Profilname = "Pandora"
Pandora(0)\Passwort = "Hallo"


Procedure Login(p.Profile(1))
  If Profil = p(0)\Profilname
    Debug "Hallo Pandora"
  Else
    Debug "Benutzername oder Passwort falsch"
    Delay(10000)
    End
  EndIf
EndProcedure

Login(Pandora())

Verfasst: 07.04.2007 21:28
von Pandorra
danke,
dass hat mir sehr geholfen.

Aber wenn ich nun mehrere Passwörter habe...
Eins wäre ja kein Problem

Code: Alles auswählen

Global Profil.s, Passwort.s
Profil.s =  InputRequester("Spieler","Bitte geben sie Ihren Profilnamen an:","")
Passwort.s =  InputRequester("Spieler","Bitte geben sie Passwort an:","")

 


Procedure Login()
If Profil = "Pandora" And Passwort = "289"
Debug "Hallo Pandora"
Else
Debug "Benutzername oder Passwort falsch"
Delay(10000)
End
EndIf 
EndProcedure

Login()
Aber zwei:

Code: Alles auswählen

Global Profil.s, Passwort.s
Profil.s =  InputRequester("Spieler","Bitte geben sie Ihren Profilnamen an:","")
Passwort.s =  InputRequester("Spieler","Bitte geben sie Passwort an:","")


Structure Profile
  Profilname.s
  Passwort.s
EndStructure


Dim Pandora.Profile(9)

Pandora(0)\Profilname = "Pandora"
Pandora(0)\Passwort = "289"

Dim T.Profile(9)

Mip(0)\Profilname = "T"
Mip(0)\Passwort = "TT"


Procedure Login(p.Profile(1))
  If Profil = p(0)\Profilname
    Debug "Hallo" + Profil
  Else
    Debug "Benutzername oder Passwort falsch"
    Delay(10000)
    End
  EndIf
EndProcedure

Login(??()) 

Verfasst: 07.04.2007 23:07
von AND51
Du sagst, du möchtest mehrere Werte in einer Variablen ohne Structure speichern? Dann könnte ich mir als einzige Lösung vorstellen, ein Trennzeichen zu verwenden, alle Werte in die Variable zu packen und diese dann mit StringField() wieder auszulesen.

Code: Alles auswählen

Define profil.s

profil+InputRequester("", "Name", "")+"*"
profil+InputRequester("", "PW 1", "")+"*"
profil+InputRequester("", "PW 2", "")

Debug "Name: "+StringField(profil, 1, "*")
Debug "Passwort 1: "+StringField(profil, 2, "*")
Debug "Passwort 2: "+StringField(profil, 3, "*")

Verfasst: 08.04.2007 00:00
von Pandorra
ja.
(Aber ich habe es jetzt ein bisschen rumgeschaut. Es scheint als wäre es besser mit Structure.)
Aber es klappt nicht siehe ein Beitrag weiter oben. Ich kann mach nur mit Pandora(als bsp.) einloggen. Und ich will nicht immer wieder

Code: Alles auswählen

Pandora(0)\Profilname = "Pandora"
Pandora(0)\Passwort = "Hallo"


Procedure Login(p.Profile(1))
  If Profil = p(0)\Profilname
    Debug "Hallo Pandora"
  Else
    Debug "Benutzername oder Passwort falsch"
    Delay(10000)
    End
  EndIf
EndProcedure

Login(Pandora()) 
das schreiben müssen (wobei dies nicht klappen würde)

Verfasst: 08.04.2007 00:05
von ts-soft

Code: Alles auswählen

Dim Pandora.Profile(9) 
Diese Variable reicht für 10 User, falls Dir das entgangen ist.

Code: Alles auswählen

Dim T.Profile(9) 
Sind nochmals 10, also irgendwie denkste
noch ein wenig verkehrt.

Vielleicht fällt es Dir mit einer LinkList einfacher?

Verfasst: 08.04.2007 10:18
von Pandorra
evtl.
oh... hab ich garnicht gesehen.
Aber wenn ich jetzt von einem anderen Benutzer alles eingeben möchte muss ich ja nicht

Code: Alles auswählen

If Profil = p(0)\Profilname
schreiben sondern bei der (0) was anderes. Gibt es soetwas wie 0-10 oder so?

Verfasst: 08.04.2007 11:05
von bluejoke
Statt der 0 kannst du auch eine Variable schreiben und diese z.B. innerhalb einer Schleife erhöhen.

Verfasst: 08.04.2007 11:22
von Pandorra
aber sonst gibt es keine Möglichkeit mehr oder?