from tkinter import * class Speicher(object): def __init__(self): self.dateiname = "gbuch.dat" print('Datei ', self.dateiname, ' geöffnet.') try: self.datei = open(self.dateiname, 'r+') except IOError: # Datei existiert noch nicht --> Neuanlage self.datei = open(self.dateiname, 'w') self.datei.close() self.datei = open(self.dateiname, 'r+') def Ende(self): print('Datei ', self.dateiname, ' geschlossen.') if self.datei: self.datei.close() def LeseDatensatz(self): try: Name = self.datei.readline() Vorname = self.datei.readline() GebDat = self.datei.readline() # Zeilenendezeichen entfernen Name = Name.strip() Vorname = Vorname.strip() GebDat = GebDat.strip() except: # Datensatz nicht gefunden Name = Vorname = GebDat = "" return Name, Vorname, GebDat def SpringeAnfang(self): self.datei.seek(0) def SchreibeDatensatz(self,Name,Vorname,GebDat): self.datei.seek(0,2) # Sprung an das Dateiende self.datei.write(Name+"\n") self.datei.write(Vorname+"\n") self.datei.write(GebDat+"\n") self.datei.flush() def Button_Weiter_Click(): Name,Vorname,GebDat = meinSpeicher.LeseDatensatz() entryName.delete(0,END) entryName.insert(0,Name) entryVorname.delete(0,END) entryVorname.insert(0,Vorname) entryGebDat.delete(0,END) entryGebDat.insert(0,GebDat) def Button_Anfang_Click(): meinSpeicher.SpringeAnfang() Button_Weiter_Click() def Button_Speichern_Click(): Name = entryName.get() Vorname = entryVorname.get() GebDat = entryGebDat.get() meinSpeicher.SchreibeDatensatz(Name,Vorname,GebDat) entryName.delete(0,END) entryVorname.delete(0,END) entryGebDat.delete(0,END) def winexit(): meinSpeicher.Ende() tkFenster.destroy() tkFenster.quit() # Erzeugung des Fensters tkFenster = Tk() tkFenster.title("GBuch") tkFenster.geometry("270x160") tkFenster.protocol("WM_DELETE_WINDOW", winexit) # Exit wenn x gedrückt # Rahmen Daten frameDaten = Frame(master=tkFenster, background="#A0DAB3") frameDaten.place(x=10, y=10, width=250, height=100) labelName = Label(master=frameDaten, text="Name", background="#A0DAB3", anchor=W) labelName.place(x=5, y=5, width=100, height=20) entryName = Entry(master=frameDaten, background="white") entryName.place(x=100, y=5, width=100, height=20) labelVorname = Label(master=frameDaten, text="Vorname", background="#A0DAB3", anchor=W) labelVorname.place(x=5, y=35, width=100, height=20) entryVorname = Entry(master=frameDaten, background="white") entryVorname.place(x=100, y=35, width=100, height=20) labelGebDat = Label(master=frameDaten, text="GebDat", background="#A0DAB3", anchor=W) labelGebDat.place(x=5, y=65, width=100, height=20) entryGebDat = Entry(master=frameDaten, background="white") entryGebDat.place(x=100, y=65, width=100, height=20) # Rahmen Buttons frameButtons = Frame(master=tkFenster, background="#FFDA5D") frameButtons.place(x=10, y=120, width=250, height=30) buttonAnfang = Button(master=frameButtons, text="Anfang", command=Button_Anfang_Click) buttonAnfang.place(x=5, y=5, width=50, height=20) buttonWeiter = Button(master=frameButtons, text="weiter", command=Button_Weiter_Click) buttonWeiter.place(x=60, y=5, width=50, height=20) buttonSpeichern = Button(master=frameButtons, text="Datensatz speichern", command=Button_Speichern_Click) buttonSpeichern.place(x=120, y=5, width=120, height=20) # Aktivierung des Fensters meinSpeicher = Speicher() tkFenster.mainloop()