Seite 1 von 1

save ohne überschreiben?

Verfasst: Freitag 2. Juni 2006, 13:37
von skunkk90
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?

Verfasst: Freitag 2. Juni 2006, 13:46
von pr0stAta
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 *

Verfasst: Freitag 2. Juni 2006, 13:55
von skunkk90
hey wow vielen Dank!! :D :D
huuhuu^^ jetzt ist es schon wieder besser geworden ^^
hehe mfg

Verfasst: Freitag 2. Juni 2006, 14:00
von skunkk90
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!)

Verfasst: Freitag 2. Juni 2006, 14:32
von murph
was hältst du von der anweisung "IF"???

Verfasst: Freitag 2. Juni 2006, 15:09
von skunkk90
ja wie denn?

Code: Alles auswählen

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

Verfasst: Freitag 2. Juni 2006, 15:32
von Joghurt

Code: Alles auswählen

if eingabefeld.get() == '':

Verfasst: Freitag 2. Juni 2006, 15:43
von skunkk90
mit welchem befehl kann ich dem IF mehrere variablen geben?
also zB

Code: Alles auswählen

if eingabefeld.get() and USW...
and? or?

Verfasst: Freitag 2. Juni 2006, 15:52
von skunkk90
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??

Verfasst: Freitag 2. Juni 2006, 16:00
von Joghurt
sporteingabe == '' or manneingabe1 == '' or ...

Verfasst: Freitag 2. Juni 2006, 16:27
von skunkk90
vielen dank es funktioniert!!