Verfasst: 26.04.2007 21:23
wenn man mit Dim ein Array macht wie speichert man dies dann und liest es einzelnd aus?
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
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
Gern!Pandorra hat geschrieben:könnte mir jemand sagen was ich falsch mache?
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.
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.