Problem mit "file"
Verfasst: Sonntag 28. Januar 2007, 18:47
Ich habe versucht ein kleines Highscoreprogramm zuschreiben. Dieses Programm soll aus einem file die Highscoredaten auslesen und sie auch in diesem file speichern. Die Funktionen zum Higscoreauslesen und Highscorespeichern in meinem Programm sehen so aus:
Das Auslesen scheint auch zu funktionieren allerdings schreibt mein Programm nichts in die Datei. Ich sehe hier aber keinen Fehler. Bitte helft mir! Vielen Dank im Vorraus.
MfG
Anfänger
Code: Alles auswählen
punkte=0
def ende(self):
global highscore, daten, platz1, platz2, platz3, platz4, platz5, platz6, platz7, platz8, platz9, platz10, pktplatz1, pktplatz2, pktplatz3
global pktplatz4, pktplatz5, pktplatz6, pktplatz7, pktplatz8, pktplatz9, pktplatz10, punkte
self.highscorelesen()
punkte=int(punkte)
pktplatz1=int(pktplatz1)
pktplatz2=int(pktplatz2)
pktplatz3=int(pktplatz3)
pktplatz4=int(pktplatz4)
pktplatz5=int(pktplatz5)
pktplatz6=int(pktplatz6)
pktplatz7=int(pktplatz7)
pktplatz8=int(pktplatz8)
pktplatz9=int(pktplatz9)
pktplatz10=int(pktplatz10)
if (punkte >= pktplatz1 or punkte >= pktplatz2 or punkte >= pktplatz3 or punkte >= pktplatz4 or punkte >= pktplatz5 or punkte >= pktplatz6
or punkte >= pktplatz7 or punkte >= pktplatz8 or punkte >= pktplatz9 or punkte >= pktplatz10):
self.neuerrekord()
else:
self.beenden()
def neuerrekord(self):
self.rekordfenster=Tk()
self.neuerrekord=Label(self.rekordfenster, font=('Arial', 16, 'bold'), bg='#FF9900', fg='#FF0000', text='Neuer Rekord!')
self.namenlabel=Label(self.rekordfenster, height=5, bg='#FF9900')
self.namenlabel2=Label(self.namenlabel, font=('Arial', 10), bg='#FF9900', width=25, text='Geben Sie Ihren Namen ein:')
self.nameneingabe=Entry(self.namenlabel, width=15, bg='black', fg='yellow')
self.okbutton= Button(self.rekordfenster, font=('Arial', 10, 'bold'), text='OK', command=self.highscorespeichern, width=5, height=1, bg='#000000', fg='yellow')
self.neuerrekord.pack(pady=10, padx=10)
self.namenlabel.pack(pady=5, padx=5)
self.namenlabel2.pack(pady=5, padx=5)
self.nameneingabe.pack(pady=5, padx=5)
self.okbutton.pack(pady=10)
self.rekordfenster.mainloop()
def highscorelesen(self):
global highscore, platz1, platz2, platz3, platz4, platz5, platz6, platz7, platz8, platz9, platz10, pktplatz1, pktplatz2, pktplatz3
global pktplatz4, pktplatz5, pktplatz6, pktplatz7, pktplatz8, pktplatz9, pktplatz10
try:
daten=file('Dateipfad\highscore.txt', 'r')
highscore=daten.readlines()
platz1=highscore[0]
pktplatz1=highscore[1]
platz2=highscore[2]
pktplatz2=highscore[3]
platz3=highscore[4]
pktplatz3=highscore[5]
platz4=highscore[6]
pktplatz4=highscore[7]
platz5=highscore[8]
pktplatz5=highscore[9]
platz6=highscore[10]
pktplatz6=highscore[11]
platz7=highscore[12]
pktplatz7=highscore[13]
platz8=highscore[14]
pktplatz8=highscore[15]
platz9=highscore[16]
pktplatz9=highscore[17]
platz10=highscore[18]
pktplatz10=highscore[19]
daten.close()
except:
self.fehler()
def highscorespeichern(self):
global platz1, platz2, platz3, platz4, platz5, platz6, platz7, platz8, platz9, platz10, pktplatz1, pktplatz2, pktplatz3, pktplatz4, pktplatz5, pktplatz6, pktplatz7, pktplatz8, pktplatz9, pktplatz10, punkte
if punkte > pktplatz1:
pktplatz1 = str(punkte)
platz1 = self.nameneingabe.get()
elif punkte == pktplatz1 or punkte > pktplatz2:
pktplatz2 = str(punkte)
platz2 = self.nameneingabe.get()
elif punkte == pktplatz2 or punkte > pktplatz3:
pktplatz3 = str(punkte)
platz3 = self.nameneingabe.get()
elif punkte == pktplatz3 or punkte > pktplatz4:
pktplatz4 = str(punkte)
platz4 = self.nameneingabe.get()
elif punkte == pktplatz4 or punkte > pktplatz5:
pktplatz5 = str(punkte)
platz5 = self.nameneingabe.get()
elif punkte == pktplatz5 or punkte > pktplatz6:
pktplatz6 = str(punkte)
platz6 = self.nameneingabe.get()
elif punkte == pktplatz6 or punkte > pktplatz7:
pktplatz7 = str(punkte)
platz7 = self.nameneingabe.get()
elif punkte == pktplatz7 or punkte > pktplatz8:
pktplatz8 = str(punkte)
platz8 = self.nameneingabe.get()
elif punkte == pktplatz8 or punkte > pktplatz9:
pktplatz9 = str(punkte)
platz9 = self.nameneingabe.get()
elif punkte == pktplatz9 or punkte > pktplatz10:
pktplatz10 = str(punkte)
platz10 = self.nameneingabe.get()
try:
daten2=file('Dateipfad\highscore.txt', 'w')
daten2.write(platz1,pktplatz1,'\n',platz2,pktplatz2,'\n',platz3,pktplatz3,'\n',platz4,pktplatz4,'\n',
platz5,pktplatz5,'\n',platz6,pktplatz6,'\n',platz7,pktplatz7,'\n',platz8,pktplatz8,'\n',
platz9,pktplatz9,'\n',platz10,pktplatz10)
daten2.close()
except:
self.fehler()
MfG
Anfänger