UseFile in Highscore will nicht (PB 3.94)

Anfängerfragen zum Programmieren mit PureBasic.
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

UseFile in Highscore will nicht (PB 3.94)

Beitrag von Svking »

Hallo

Ich habe eine Highscore in mein Spiel eingebaut, sie sieht so aus:

Code: Alles auswählen

Procedure HighScore(Datei$, Punkte, Name$) 
 OpenFile(1, Datei$) 
 CreateFile(2, "_"+Datei$) 
  Repeat 
   UseFile(1) 
    String$ = ReadString() 
    HS_Punkte = Val(Trim(Mid(String$, 1, 10))) 
   UseFile(2) 
    If HS_Punkte < Punkte And Eingetragen = 0: 
     WriteStringN(Str(Punkte)+Space(10-Len(Str(Punkte)))+Name$) 
     Eingetragen = 1 
    EndIf 
    WriteStringN(String$) 
  Until String$ = "" 
 CloseFile(2) 
 CloseFile(1) 
 CopyFile("_"+Datei$, Datei$) 
 DeleteFile("_"+Datei$) 
EndProcedure 

...

OpenWindow(0,100,100,500,400,#PB_Window_SystemMenu,"Highscore Eintrag")
 If CreateGadgetList(WindowID())
 StringGadget(4,20,120,360,20,"")
    ButtonGadget(5,400,120,80,20,"Übernehmen")
  EndIf
  Repeat
    EventID = WaitWindowEvent()
    If EventGadgetID()=5
          name1$=GetGadgetText(4)
          Datei$="highscore.txt"
          Quit = 1
        EndIf
        Until Quit=1

If Quit = 1
HighScore("highscore.txt", Punkte, name1$) 
End
EndIf
allerdings sagt er mir beim compilen, bei

Code: Alles auswählen

   UseFile(1) 
file object not initalized

kann mir jemand erklären warum?


---
Sv
Zuletzt geändert von Svking am 15.05.2006 12:58, insgesamt 1-mal geändert.
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

Hi,

welche PB Version benutzt du? In PB4 ist UseFile() nicht mehr vorhanden bzw nötig! Ansonsten in Zukunft bitte im Titel deine Frage kurz formulieren, nicht einfach "habe problem" oder ähnlich... :allright:

Liebe Grüße
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Beitrag von Svking »

Ja ok ich werde mich bessern bezüglich meiner Titel ^^ :)

also ich benutze PB version 3.94



---
Sv
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Svking hat geschrieben:Ja ok ich werde mich bessern bezüglich meiner Titel Sv
Na dann ändere den Titel bitte! Sonst bleibt es ja bei einem Vorsatz.
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Beitrag von Svking »

^^ lol wusste garnich, dass man Titel noch nachträglich ändern kann ...
ok neuer Titel...
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
mk-soft
Beiträge: 3845
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

bei mir Funktioniert es. Datei vielleicht schon mit ein anderen Programm geöffnet?

FF :roll:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Beitrag von Svking »

ne eigendlich is die ganz unberührt die Datei

der Fehler kommt aber erst seid dem ich diese Zeile

Code: Alles auswählen

HighScore("highscore.txt", Punkte, "Punkte") 
in

Code: Alles auswählen

HighScore("highscore.txt", Punkte, name$)
geändert habe
:(

aber das name$ liest er ja normalerweise aus dem StringGadget
Das Ende meines Lebens:
If leben = 0
End
Endif
Benutzeravatar
winduff
Beiträge: 879
Registriert: 10.02.2006 21:05
Wohnort: Gießen
Kontaktdaten:

Beitrag von winduff »

komisch.

Mach mal den string global, was aber keinen unterschied machen sollte... ich probiere es nachher mal, wenn ich daheim bin.
Bild
AND51 hat geschrieben:...und ich würde dein Programm aus Wut zwei mal installieren, um eines genüsslicher löschen zu können, als das andere...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> aber das name$ liest er ja normalerweise aus dem StringGadget

nur wenn dus ihm auch sagst per GetGadgetText()

aber das sollte eigentlich keinen unterschied machen,
weils ja nur im eintrag selber benutzt wird,
notfalls würde er nen leeren string nehmen.

überprüf mal deine pfadangaben.
hast du irgendwas verschoben zwischendrin, verzeichnisse geändert, sonstwas?
mach mal ne sicherheitsabfrage mit If Openfile() und msg-req. rein,
dann sagt er dir schon beim open wenns klemmt...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Svking
Beiträge: 48
Registriert: 23.09.2005 15:19
Kontaktdaten:

Beitrag von Svking »

in den verzeichnisen hab ich nichts geändert

aber vieleicht ist auch irgendwo anders der Fehler

ich poste mal meinen GANZEN Code aber ich kann da nichts falsches finden... :(

/edit nur das wichtigste vom code

Code: Alles auswählen


...
ReadFile(0,"highscore.txt")
hs1$  =   ReadString()
hs2$  =   ReadString()
hs3$  =   ReadString()
hs4$  =   ReadString()
hs5$  =   ReadString()
hs6$  =   ReadString()
...
Until KeyboardPushed(#PB_Key_Escape)
CloseScreen() 
If punkte < 1000
PlayMovie(9,0)
EndIf
If punkte > 1000
PlayMovie(10,0)
EndIf
MessageRequester("game by Sven Schober","Punkte: "+Str(punkte)) 


OpenWindow(0,100,100,500,400,#PB_Window_SystemMenu,"Highscore Eintrag")
 If CreateGadgetList(WindowID())
 StringGadget(4,20,120,360,20,"")
    ButtonGadget(5,400,120,80,20,"Übernehmen")
  EndIf
  Repeat
    EventID = WaitWindowEvent()
    If EventGadgetID()=5
          name$=GetGadgetText(4)
          Quit = 1
        EndIf
        Until Quit=1

If Quit = 1
HighScore("highscore.txt", Punkte, name$) 
End
EndIf
puh ganz schön lang ^^
Zuletzt geändert von Svking am 26.05.2006 18:39, insgesamt 1-mal geändert.
Das Ende meines Lebens:
If leben = 0
End
Endif
Antworten