"""
2015. május: Expedíció
@author Klemand66
"""


print("\n1. feladat\n")

betxt = open("veetel.txt")

vetelek=[]

for sor in betxt:
    darsor=sor.strip().split()
    adatsor=[int(darsor[0]),int(darsor[1])]
    # 0: nap  1: rádiós
    sor=next(betxt)
    adatsor.append(sor.strip()) # 3: feljegyzés                
    vetelek.append(adatsor)
    
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

print(f'Az első üzenetet rögzítő rádiós: {vetelek[0][1]}, az utolsóé: {vetelek[-1][1]},')



print("\n3. feladat\n")

farkasok=list(filter(lambda i: "farkas" in vetelek[i][2] ,range(len(vetelek))))

for f in farkasok:
    print(f'{vetelek[f][0]}. nap {vetelek[f][1]}. rádióamatőr')
    


print("\n4. feladat\n")

napdb=11

for n in range(1,napdb+1):
    radiosok=list(filter(lambda i: vetelek[i][0]==n ,range(len(vetelek))))
    print(f'{n:2}. nap: {len(radiosok):2} rádióamatőr')



print("\n5. feladat\n")

kardb=90

def helyreallito(klista):
    for k in klista:
        if k!="#":
            return k    
    return "#"

kitxt = open("adaas.txt","w")

for n in range(1,napdb+1):
    napivetelek=list(filter(lambda vetel: vetel[0]==n ,vetelek))
    fj=""
    for i in range(kardb):
        karakterlista=list(map(lambda vetel: vetel[2][i],napivetelek))
        fj+=helyreallito(karakterlista)      
    kitxt.write(f'{fj}\n')
 
kitxt.close()
print("A kiíratás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n6. feladat\n")

def szame(szo):
    valasz=True
    for i in range(len(szo)):
        if szo[i]<"0" or szo[i]>"9":
            valasz=False
    return valasz

print(f'Az elkészített függvény:\n\n\
def szame(szo):\n\
    valasz=True\n\
    for i in range(len(szo)):\n\
        if szo[i]<"0" or szo[i]>"9":\n\
            valasz=False\n\
    return valasz')



print("\n7. feladat\n")

radiosdb=20
nap=int(input(f'Adja meg a nap sorszámát (1<= nap <= {napdb})! '))              
radios=int(input(f'Adja meg a rádióamatőr sorszámát (1<= rádiós <= {radiosdb})! '))
aktvetel=list(filter(lambda vetel: vetel[0]==nap and vetel[1]==radios ,vetelek))

if len(aktvetel)>0:
    aktfj=aktvetel[0][2]
    inf=aktfj.split(" ")[0] # csak a daraboltsor első eleme hordoz információt
    egyedek=inf.split("/")
    if len(egyedek)==2 and egyedek[0].isnumeric() and egyedek[1].isnumeric:
        print(f'A megfigyelt egyedek száma: {int(egyedek[0])+int(egyedek[1])}.')
    else:
        print("Nincs információ.")        
else:
    print("Nincs ilyen feljegyzés.")

"""
Mivel a feljegyzésekben a / előtt biztosan van egy karakter,
és utána sem következhet közvetlenül szóköz, nem okozhat hibát,
hogy a szame függvény az üres szót is számnak tekinti.
Pl. az inf="8/" esetén lépne fel futási hiba.
A beépített .isnumeric() metódus "" esetén False értéket ad,
ezért üres karakter esetén sem futnánk bele az int("") hibába.
"""

input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
