Mehrere Werte in eine Variable

Anfängerfragen zum Programmieren mit PureBasic.
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Mehrere Werte in eine Variable

Beitrag 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.
Benutze PB v 4.40 Beta 3
Benutzeravatar
LukasBanana
Beiträge: 150
Registriert: 14.03.2007 19:13
Kontaktdaten:

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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())
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag 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(??()) 
Benutze PB v 4.40 Beta 3
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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, "*")
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag 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)
Benutze PB v 4.40 Beta 3
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag 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?
Benutze PB v 4.40 Beta 3
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Statt der 0 kannst du auch eine Variable schreiben und diese z.B. innerhalb einer Schleife erhöhen.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Pandorra
Beiträge: 124
Registriert: 10.02.2007 12:15

Beitrag von Pandorra »

aber sonst gibt es keine Möglichkeit mehr oder?
Benutze PB v 4.40 Beta 3
Antworten