save ohne überschreiben?

Fragen zu Tkinter.
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

save ohne überschreiben?

Beitragvon skunkk90 » Freitag 2. Juni 2006, 13:37

Guten Tag!
Ich habe mit folgendem Programm vor Eingaben in einer .txt abzuspeichern, aber OHNE dass das davorige überschrieben wird! Es soll also eine Art Protokoll ergeben!

Code: Alles auswählen

# -*- coding: cp1252 -*-
from Tkinter import*
from ScrolledText import*

def arbeite():
    f = open('DeineTipps.txt', "r")
    sporteingabe=str(sportEntry.get())
    mann1eingabe=str(mann1ein.get())
    mann2eingabe=str(mann2ein.get())
    tippein1eingabe=str(tippein1.get())
    tippein2eingabe=str(tippein2.get())
    ausgabefeld.insert(END,'Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ ' ",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
    f = open('DeineTipps.txt', "w")
    f.write('Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ '",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
   

Hier wird der Tipp in der "DeineTipps.txt" gespeichert (Zeile 13 und 14), nur eben bei mehrmaligen Tippen wieder überschrieben... Wie löse ich dieses Problem?
pr0stAta
User
Beiträge: 271
Registriert: Freitag 17. September 2004, 11:49
Wohnort: Bremen

Beitragvon pr0stAta » Freitag 2. Juni 2006, 13:46

Versuche folgendes

Code: Alles auswählen

# -*- coding: cp1252 -*-
from Tkinter import*
from ScrolledText import*

def arbeite():
    f = open('DeineTipps.txt', "aw+")
    sporteingabe=str(sportEntry.get())
    mann1eingabe=str(mann1ein.get())
    mann2eingabe=str(mann2ein.get())
    tippein1eingabe=str(tippein1.get())
    tippein2eingabe=str(tippein2.get())
    ausgabefeld.insert(END,'Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ ' ",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
    f.write('Du hast im "'+sporteingabe+'" bei\n"'+mann1eingabe+'" gegen "'  +mann2eingabe+ '",\n'+tippein1eingabe+' : '+tippein2eingabe+' getippt!\n\n')
   


Es gibt verschiedene Arten eine Datei zu öffnen. r für read only und w
für write z.B. Mit aw+ erzeugst du ggf. die Datei falls sie nicht vorhanden ist. Ist sie vorhanden, hängst du den Text an den bereits vorhandenen ran. Und bitte denk daran, die Datei immer per f.close() nach deinen
operationen zu schließen.

gruss
*heute hab ich nen aktiven tag :D *
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

Beitragvon skunkk90 » Freitag 2. Juni 2006, 13:55

hey wow vielen Dank!! :D :D
huuhuu^^ jetzt ist es schon wieder besser geworden ^^
hehe mfg
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

Beitragvon skunkk90 » Freitag 2. Juni 2006, 14:00

aber eine frage hätte ich noch, wenn wir schonmal beim saven wären...und zwar:
wie kann ich es hinbekommen, dass er NICHTS speichert, wenn auch nichts in die eingabefelder eingetragen wird, sie also leer sind?
(ich möchte eben verhindern, dass wenn man 15 ma auf den button klickt, dass dann auch eben 15 mal da steht: Du hast im
"" bei "" gegen " ", : getippt!)
murph
User
Beiträge: 622
Registriert: Freitag 14. April 2006, 19:23
Kontaktdaten:

Beitragvon murph » Freitag 2. Juni 2006, 14:32

was hältst du von der anweisung "IF"???
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

Beitragvon skunkk90 » Freitag 2. Juni 2006, 15:09

ja wie denn?

Code: Alles auswählen

if eingabefeld.get()== :
print 'Bitte etwas eingeben'

??
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Freitag 2. Juni 2006, 15:32

Code: Alles auswählen

if eingabefeld.get() == '':
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

Beitragvon skunkk90 » Freitag 2. Juni 2006, 15:43

mit welchem befehl kann ich dem IF mehrere variablen geben?
also zB

Code: Alles auswählen

if eingabefeld.get() and USW...

and? or?
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

Beitragvon skunkk90 » Freitag 2. Juni 2006, 15:52

ich habe es jetzt so gemacht:

Code: Alles auswählen

if sporteingabe or mann1eingabe or mann2eingabe or tippein1eingabe or tippein2eingabe == '':
        ausgabefeld.insert(END,'Alle Felder müssen ausgefüllt werden!\n')
else:
        ausgabefeld.insert(END,'Dein Tipp wurde in der "Tipp-Protokoll.txt"\ngespeichert!\n\n')
        f.write('Sport: '+sporteingabe+'\nMannschaft 1: '+mann1eingabe+'\nMannschaft 2: '+mann2eingabe+'\nDein Tipp: '+tippein1eingabe+' : '+tippein2eingabe+'\n______________________________________\n\n')

nur sagt er mir jetzt IMMER dass alle felder leer seien?? wo ist der fehler/ was muss ich ändern??
Benutzeravatar
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Beitragvon Joghurt » Freitag 2. Juni 2006, 16:00

sporteingabe == '' or manneingabe1 == '' or ...
Benutzeravatar
skunkk90
User
Beiträge: 57
Registriert: Donnerstag 1. Juni 2006, 20:38
Wohnort: F:\Homeverzeichnis.zip
Kontaktdaten:

Beitragvon skunkk90 » Freitag 2. Juni 2006, 16:27

vielen dank es funktioniert!!

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder