Kód: Vybrať všetko
from time import localtime, strftime
from string import split
konto=500
subor=file('Historia.txt','r')
historia=subor.read()
subor.close()
historia2=historia.splitlines()
for riadok in historia2:
hodnota=riadok.split()
if konto > (int(hodnota[0])):
indexR=historia2.index(riadok)
subor=file('Historia.txt','w')
meno=raw_input('Zadajte svoje meno: ')
zapis=(str(konto))+(' : ')+(meno[0:10])+(strftime(" %H:%M:%S %d-%m-%Y",localtime()))
historia2.insert(indexR,zapis)
if len(historia2) == 11:
for n in historia2[0:10]:
subor.write((n)+('\n'))
subor.close()
else:
print ">>>>> Lutujem, ale minimalne 10 hracov dosiahlo lepsi vysledok. Skus opat! <<<<<"
print "Dovidenia"Rozoberiem rad radom, co to ma spravit.
1. Nacita obsah suboru Historia.txt . Su tam ulozene udaje o vyske konta, mene, case a datume v presne stanovenom tvare.
2. Obsah suboru sa nacita do pola historia.
3. Pole historia sa pomocou funkcie splitlines() rozdeli na jednotlive prvky, kazdy prvok reprezentuje jeden riadok zo suboru Historia.txt. Tieto hodnoty sa zapisu do pola historia2
4. Pre kazdy prvok v poli historia2 sa vytvori vzdy nove pole hodnota, ktore vdaka funkcii split() obsahuje rozdeleny jeden prvok z pola historia2. Tymto dosiahnem, ze sa zachova priradenie >>> vyska konta : meno cas datum
5. Podmienkou if konto > (int(hodnota[0])) dosiahnem, ze ak vyska konta bude vacsia ako prve cislo v poli hodnota, na umiestnenie urcene premennou indexR vlozime hodnotu zapis. Kedze sme nasli hodnotu, ktora vyhovuje podmienke, malo by sa to skoncit. Neskonci sa a prehladava sa dalej. Samozrejme je to kvoli tomu cyklu FOR. Je nejak mozne ukoncit takyto cyklus, alebo radsej hladat inu cestu?
6. Sa porovna pocet clenov v poli historia2, ak je vacsi ako 10, znamena to, ze podmienka bola platna, pribudol zaznam a posledny zaznam sa vymaze. Opacne sa vypise hlaska.
Moja otazka znie, je aj v popise, ale opakovanie je matkou mudrosti