No, není to ani problém s mazáním položek ze souboru, jakože s tím, když chci ukončit zadávání. Však vyzkoušejte zdroják. Spustím si normální program, zadám jména, čísla, vše v pohodě. Potom se mě to zeptá, zda chci vymazat nějakou položku ze seznamu. Dám ano, vložím číslo řádku, v pohodě se mi vymaže. Pokud ale chci ukončit vymazávání tím že nezadám nic, hodí mi to syntaktickou chybu (viz. zdroják). Nevíte prosím někdo jak s tím hnout? Díky předem.
Zdroják:
# -*- coding: cp1250 -*- .
import sys,time
class telseznam:
"Trida telefonnich seznamu. Implementace pomoci seznamu."
def __init__(self):
"Inicializacni metoda"
self.jmena=[]
self.cisla=[]
def pridej(self, jmeno, cislo):
"Metoda na pridavani do seznamu."
self.jmena.append(jmeno)
self.cisla.append(cislo)
def uloz(self):
delka=len(self.jmena)
seznam=file('seznam.txt', 'a')
for vec in range(delka):
seznam.write(self.jmena[vec]+" ")
seznam.write(self.cisla[vec]+"n")
seznam.close()
def nacti(self):
seznam=file("seznam.txt", "r")
i=0
print u"nVýpis seznamu: "
for radek in seznam:
cislo=radek[-10:-1]
jmeno=radek[:-11]
print i,".: ",jmeno,"-", cislo
i=i+1
seznam.close()
def vymaz(self, poradi):
seznam2=file('seznam.txt','r')
seznam1=[]
for radek in seznam2:
seznam1=seznam1+[radek]
del(seznam1[poradi])
seznam2.close()
seznam=file('seznam.txt', 'w')
for veci in range(len(seznam1)):
seznam.write(seznam1[veci])
seznam.close
pratele=telseznam()
print u"Pro ukončení přidávání nezadávejte nic.n"
jmeno=raw_input("Zadej jmeno pro pridani do seznamu: ")
if jmeno != "":
cislo=raw_input("Zadej cislo k tomuto jmenu: ")
while len(cislo) != 9:
print u"Zadané číslo nemá požadovanou délku 9 znaků."
cislo=raw_input("Zadej cislo k tomuto jmenu: ")
while jmeno != "":
pratele.pridej(jmeno, cislo)
jmeno=raw_input("nZadej jmeno pro pridani do seznamu: ")
if jmeno != "":
cislo=raw_input("Zadej cislo k tomuto jmenu: ")
while len(cislo) != 9:
print u"Zadané číslo nemá požadovanou délku 9 znaků."
cislo=raw_input("Zadej cislo k tomuto jmenu: ")
pratele.uloz()
pratele.nacti()
ano_ne=raw_input("nPrejete si vymazat nektery z kontaktu? (a/n): ")
if ano_ne=="a":
print u"nPro ukončení vymazávání kontaktů, nezadávejte nic."
poradi=input("nZadej cislo radku, ktery chcete odstranit: ")
while str(poradi) != "":
pratele.vymaz(poradi)
pratele.nacti()
poradi=input("nZadej cislo radku, ktery chcete odstranit: ")
pratele.nacti()
x=raw_input("nStisknete Enter pro ukonceni programu...")
sys.exit()