You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.6 KiB
113 lines
3.6 KiB
# 1. čast funkce programu
|
|
|
|
def pridej_poznamku(poznamky, autor, text):
|
|
"""Přidá novou poznámku (slovník) do seznamu"""
|
|
nova = {
|
|
"autor":autor,
|
|
"text":text,
|
|
"dulezita":False
|
|
}
|
|
poznamky.append(nova)
|
|
|
|
def zobraz_poznamky(poznamky):
|
|
"""Vypíše všechny poznámky. Důležité poznámky vypíše [!]"""
|
|
if len(poznamky) == 0:
|
|
print("Žádné poznámky")
|
|
return
|
|
|
|
for i, pozn in enumerate(poznamky):
|
|
znacka = " [!]" if pozn["dulezita"] else ""
|
|
print(f'[{i+1}] {pozn["autor"]}: {(pozn["text"])}{znacka}')
|
|
|
|
def oznacit_dulezitou(poznamky,cislo):
|
|
"""Označí poznámku jako důležitou. Vrací True/False podle úspěchu"""
|
|
if 1 <= cislo <= len(poznamky):
|
|
poznamky[cislo-1]["dulezita"] = True
|
|
return True
|
|
return False
|
|
|
|
def uloz_do_souboru(poznamky,nazev_souboru):
|
|
"""Uloží poznámky do textového souboru (formát: autor|text|True/False)"""
|
|
# AltGR + W = |, AltGR + Q = \
|
|
with open(nazev_souboru,mode="w",encoding="utf-8") as f:
|
|
for pozn in poznamky:
|
|
radek = f"{pozn['autor']}|{pozn['text']}|{pozn['dulezita']}\n"
|
|
f.write(radek)
|
|
print(f"Uloženo {len(poznamky)} poznámek do {nazev_souboru}")
|
|
|
|
def nacti_ze_souboru(nazev_souboru):
|
|
"""Načte poiznámky ze souboru a vrátí je jako seznam slovníků(dict array)"""
|
|
poznamky = []
|
|
try:
|
|
with open(nazev_souboru,mode="r",encoding="utf-8") as f:
|
|
for radek in f:
|
|
casti = radek.strip().split("|")
|
|
if len(casti) == 3:
|
|
poznamka = {
|
|
"autor":casti[0],
|
|
"text":casti[1],
|
|
"dulezita":casti[2] == "True"
|
|
}
|
|
poznamky.append(poznamka)
|
|
except FileNotFoundError:
|
|
print("Soubor nenalezen, začínáme s prázným seznamem")
|
|
except Exception as e:
|
|
print(f"Chyba: {e}")
|
|
return poznamky
|
|
|
|
# 2. hlavní program
|
|
|
|
def hlavni_menu():
|
|
"""Zobrazí menu a vrátí volbu uživatele"""
|
|
print("\n----- SPRÁVCE POZNÁMEK -----")
|
|
print("1. přidat poznámku")
|
|
print("2. Zobrazit poznámky")
|
|
print("3. Označit důležitou")
|
|
print("4. Uložit do souboru")
|
|
print("5. Načíst ze souboru")
|
|
print("6. Konec")
|
|
print("=========================")
|
|
return input("Vaše Volba: ")
|
|
|
|
def main():
|
|
"""Hlavní funkce programu."""
|
|
nazev_souboru = "poznamky.txt"
|
|
poznamky = []
|
|
|
|
print("Vítejte ve Správci poznámek!")
|
|
while True:
|
|
volba = hlavni_menu()
|
|
if volba == "1":
|
|
autor = input("Autor: ")
|
|
text = input("Text poznámky: ")
|
|
pridej_poznamku(poznamky,autor,text)
|
|
print("Poznámka přidána!")
|
|
|
|
elif volba == "2":
|
|
print(f"--Vaše poznámky--")
|
|
zobraz_poznamky(poznamky)
|
|
|
|
elif volba == "3":
|
|
zobraz_poznamky(poznamky)
|
|
try:
|
|
cislo = int(input("Číslo poznámky k označení: "))
|
|
if oznacit_dulezitou(poznamky, cislo):
|
|
print("Označeno jako důležité")
|
|
else:
|
|
print("Neplatné číslo")
|
|
except ValueError:
|
|
print("Zadejte prosím číslo")
|
|
|
|
elif volba == "4":
|
|
uloz_do_souboru(poznamky,nazev_souboru)
|
|
elif volba == "5":
|
|
poznamky = nacti_ze_souboru(nazev_souboru)
|
|
elif volba == "6":
|
|
print("děkujeme za využiti programu")
|
|
break
|
|
else:
|
|
print("Neplatná volba, zkuste to znovu")
|
|
|
|
# 3. spouštěč
|
|
if __name__ == "__main__":
|
|
main()
|