In ein Array eine neue Variable reinschreiben
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
könnte mir jemand sagen was ich falsch mache?
Hoffe ihr könnt mir helfen.
Code: Alles auswählen
Global Neues_Profil.s, Neues_Passwort.s
Global Profil.s, Passwort.s
Global Profil2.s, Passwort2.s
Global Number_of_Players
Global Neue_Profile.s
Global Neue_Passwoerter.s
Number_of_Players = 3
Global Dim Profile.s(Number_of_Players)
Global Dim Passwoerter.s(Number_of_Players)
Profile(0) = "H"
Passwoerter(0) = "H"
Profile(1 )= "J"
Passwoerter(1) = "J"
Profile(2) = "K"
Passwoerter(2) = "K"
If ReadFile(0, "Spieler\Profildaten.sav")
For i = 0 To 3
Profile(i) = ReadString(0)
Passwoerter(i) = ReadString(0)
Next
CloseFile(0)
EndIf
For i = 3 To Number_of_Players
ReDim Profile.s(Number_of_Players)
ReDim Passwoerter.s(Number_of_Players)
Profile(i) = Neue_Profile
Passwoerter(i) = Neue_Passwoerter
Next i
If InitSprite() = 0
MessageRequester("Error", "Can't open screen & sprite enviroment!", 0)
End
EndIf
Procedure Anmelden()
If OpenWindow(0, 0, 0, 396, 135, "Start", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
If CreateGadgetList(WindowID(0))
Top = 6
Frame3DGadget(0, 6, Top, 384, 80, "", 0) : Top + 20
OptionGadget(1, 20, Top, 100, 20, "Anmelden") : Top + 25
OptionGadget(2, 20, Top, 100, 20, "Login") : Top - 25
StringGadget (3, 230, Top, 150, 20, "") : Top + 25
StringGadget (4, 230, Top, 150, 20, "", #PB_String_Password) : Top - 21
TextGadget(5, 170, Top, 150, 20, "Name:") :Top + 25
TextGadget(6, 170, Top, 150, 20, "Passwort:") :Top + 40
ButtonGadget (7, 6, Top, 180, 25, "Launch", #PB_Button_Default)
ButtonGadget (8, 200, Top, 190, 25, "Cancel")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Anmelden = 1
Login = 0
Case 2
Login = 1
Anmelden = 0
Case 7
Launch = 1
Case 8
End
EndSelect
EndSelect
If Login = 1 And Launch = 1
Break
EndIf
If Anmelden = 1 And Launch = 1 And "" = GetGadgetText(4) And "" = GetGadgetText(3)
MessageRequester("Fehler", "Keine Eingabe")
End
EndIf
If Anmelden = 1 And Launch = 1
Neues_Profil = GetGadgetText(3)
Neues_Passwort = GetGadgetText(4)
Number_of_Players + 1
New_Player + 1
ReDim Profile.s(Number_of_Players)
ReDim Passwoerter.s(Number_of_Players)
Profile(Number_of_Players) = Neues_Profil
Passwoerter(Number_of_Players) = Neues_Passwort
Break
EndIf
If Launch = 1
Launch = 0
EndIf
ForEver
EndIf
EndIf
EndProcedure
Procedure Login1()
If OpenWindow(0, 0, 0, 402, 120, "Spieler 1", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
TextGadget(0, 10, 12, 100, 20, "Benutzername:")
TextGadget(1, 10, 52, 100, 20, "Passwort:")
StringGadget(2, 88, 10, 306, 20, Profil)
StringGadget(3, 88, 50, 306, 20, Passwort, #PB_String_Password)
ButtonGadget(4, 156, 80, 90, 30, "OK")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 4
Profil = GetGadgetText(2)
Passwort = GetGadgetText(3)
Break
EndSelect
EndSelect
ForEver
EndIf
User_erkannt = 0
For i = 0 To Number_of_Players
If Profil = Profile(i) And Passwort = Passwoerter(i)
MessageRequester("Willkommen", "Hallo " + Profil)
User_erkannt = 1
EndIf
Next i
If User_erkannt = 0
MessageRequester("Fehler", "Benutzername oder Passwort falsch")
Delay(1000)
End
EndIf
EndProcedure
Procedure Login2()
If OpenWindow(0, 0, 0, 402, 120, "Spieler 2", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
TextGadget(0, 10, 12, 100, 20, "Benutzername:")
TextGadget(1, 10, 52, 100, 20, "Passwort:")
StringGadget(2, 88, 10, 306, 20, Profil2)
StringGadget(3, 88, 50, 306, 20, Passwort2, #PB_String_Password)
ButtonGadget(4, 156, 80, 90, 30, "OK")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 4
Profil2 = GetGadgetText(2)
Passwort2 = GetGadgetText(3)
Break
EndSelect
EndSelect
ForEver
EndIf
User_erkannt = 0
For i = 0 To Number_of_Players
If Profil2 = Profile(i) And Passwort2 = Passwoerter(i)
MessageRequester("Willkommen", "Hallo " + Profil2)
User_erkannt = 1
EndIf
Next i
If User_erkannt = 0
MessageRequester("Fehler", "Benutzername oder Passwort falsch")
Delay(1000)
End
EndIf
EndProcedure
;Edit:
Procedure Speichern()
If CreateFile(0, "Spieler\Profildaten.sav")
For i = 0 To 3
WriteStringN(0, Profile(i))
WriteStringN(0, Passwoerter(i))
Next
EndIf
EndProcedure
;EndEdit.
Anmelden()
Login1()
Login2()
Speichern()
;Natürlich auch noch geeditet.
End
Zuletzt geändert von Pandorra am 27.04.2007 16:15, insgesamt 1-mal geändert.
Benutze PB v 4.40 Beta 3
Gern!Pandorra hat geschrieben:könnte mir jemand sagen was ich falsch mache?

* Tritt in dem Code ein Fehler auf? Wenn ja: Wie lautet die Fehlermeldung?
* Du beschreibst nicht, was Du vom Code erwartest und was er stattdessen macht.
* Du hast den Code nur unzureichend korrekt eingerückt. Das macht das Lesen desselben ein wenig schwierig.
Grüße ... Kiffi
a²+b²=mc²
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Und abgesehen davon:
- Keine externen Resourcen in einem Beispiel verwenden ("Spieler\Profildaten.sav")
- Niemals den gesamten Code posten sondern reduziert auf das eigentliche Problem.
Code der nicht Copy/Paste/Compile-fähig ist guckt ich mir gar nicht erst an.
- Keine externen Resourcen in einem Beispiel verwenden ("Spieler\Profildaten.sav")
- Niemals den gesamten Code posten sondern reduziert auf das eigentliche Problem.
Code der nicht Copy/Paste/Compile-fähig ist guckt ich mir gar nicht erst an.

Windows 10 Pro, 64-Bit / Outtakes | Derek
nein, in meinen Code tritt keine Fehlermeldung auf.
Ich möchte die Profile und Passwoerter (wenn ich ein neues anlege beim nächsten mal geladen bekommen.
Das ich nicht immer bei Anmelden einen neuen Benutzer anlegen muss sondern der letzte gespeichert wird( eine Art Anmelde Funktion )
Edit: Der Code läuft auch ohne andere Ressourcen hab es extra getestet ist nur damit der weiß woher er die Spieldatei laden soll.
(Erstellt normalerweise nachdem man ihn geladen hat den besagten Ordner Spiele. Der Rest sind nur Spielstände.
Mir fällt auf ich habe die Speicher Funktion nicht mit rein gemacht( hab den Code aus einen größeren Gebastelt. )
Ich füg das mal ebend ein.
Ich möchte die Profile und Passwoerter (wenn ich ein neues anlege beim nächsten mal geladen bekommen.
Das ich nicht immer bei Anmelden einen neuen Benutzer anlegen muss sondern der letzte gespeichert wird( eine Art Anmelde Funktion )
Edit: Der Code läuft auch ohne andere Ressourcen hab es extra getestet ist nur damit der weiß woher er die Spieldatei laden soll.
(Erstellt normalerweise nachdem man ihn geladen hat den besagten Ordner Spiele. Der Rest sind nur Spielstände.
Mir fällt auf ich habe die Speicher Funktion nicht mit rein gemacht( hab den Code aus einen größeren Gebastelt. )
Ich füg das mal ebend ein.
Benutze PB v 4.40 Beta 3
achso! Ja das ist einfach. Dann kann ich Dir sagen, was Du falsch gemachtPandorra hat geschrieben:Ich möchte die Profile und Passwoerter (wenn ich ein neues anlege beim nächsten mal geladen bekommen.
hast: Du vergisst, die Passwörter zu speichern.
Grüße ... Kiffi
// grmpf, auch Edit:
nee, ist schon sehr sinnvoll, eine Frage zum Laden/Speichern von Daten zuPandorra hat geschrieben:Edit: [...] Mir fällt auf ich habe die Speicher Funktion nicht mit rein gemacht( hab den Code aus einen größeren Gebastelt. )
Ich füg das mal ebend ein.
haben und die Speicher-Routine beim Posting zu vergessen.

Zuletzt geändert von Kiffi am 27.04.2007 16:16, insgesamt 1-mal geändert.
a²+b²=mc²