Profilo di lrosselli62

Nome lrosselli62
Indirizzo email n/a
Messaggi2
  • Re: Le Funzioni in Python: definizione, chiamata, esecuzione, come posso andare in uno specifica punto del programma dopo vaver eseguito una funzione ?
    Forum >> Principianti
    Salve,

    ringrazio Gabbo e Nuzzopippo per le risposte e i suggerimenti.

    inserisco un pezzo di codice del mio programmino che, sinteticamente, dovrebbe:

    1) da input di un file report es. rep1

    2) leggere le righe e trovare delle stringhe

    3) modificare le suddette stringhe

    4) stampare (veramente le scrive in un altro file) le suddette stringhe.

    Il mio programmino funziona, soltanto che quando no trova la stringa , chiede l'impu di un altro file report, ma invece di ri-iniziare la ricerca delle stringhe, salta la ricerca delle strighe trovate in precedenza.

    La mia richiesta è lecita: se da un file prendo delle stringhe, le modifico e le scrivo in un altro file, se non trovo una stringa, devo prendere un alto file e ricercare tutte le stringhe.


    In qualche modo ho risolto ma inserisco una parte del codice a uso "didattico" per i principianti come me.




    Una parte del codice del mio programmino è la seguente:





    path = "C:\\Python\\"

    def Start ():
    global FileTracemark
    FileTracemark = input('Inserisci il nome_file: ')

    def Tr_fail():
    print("Parametro Non trovato")
    Start()

    def Tr_read(a, x, y):

    ''' Funzione che legge file report (riga x riga), cerca il parametro a = stringa contenuta nella riga,
    x e y posizione inizio e fine della riga '''

    f = open(path + FileTracemark, "r")
    riga = f.readline()

    while riga != "": # ciclo di wile per stampare tutte le righe del file report
    if riga.find(a) >= 0: # cerco se "riga" (a) es. contiene "ECU="
    a = riga[x:y] # assegno alla variabile (a) es. ECU_SN il valore di parte della riga
    #print(a) # stampo riga (a) es. 033323220000236 (15 caratteri)
    return a # utilizzo la variabile (a) fuori dalla funzione
    break # se la ricerca (find) è True interrompe il ciclo di wile
    riga = f.readline() # leggo nuova riga
    else:
    f.close
    Tr_fail()

    f.close()

    Start()

    ECU_SN = Tr_read("ECU=", 4, 19)
    PCBA_SN =Tr_read("PCBA=", 5, 20)
    COD_PROD = Tr_read("CODICE_PROD=", 12, 25)
    PCBA_HW = Tr_read("PCBA_HW=", 8, 10)
    CODICE = Tr_read("CODICE_01=", 10, 16)
    OMOL = Tr_read("OMOL_01=", 8, 21)
    SW_1 = Tr_read("SW VERS1=", 9, 13)

    from datetime import datetime
    obj = datetime.now() # Estrazione della data corrente
    DayToYear = obj.strftime("%j%y") # Estrazione nr. giorni da inizio anno %j e anno 2 caratteri %y
    #WeekCode = obj.strftime("%W") # Estrazione nr. settimana da inizio anno

    ECU_SN_COD = 'T' + DayToYear + '0' + str(ECU_SN[8:15]) + '0'
    print(ECU_SN_COD)

    def str_comp(var, x, y):

    '''' Funzione che elabora la stringa (var) : Rimuove tutti gli 0 da sx -- Converte in esadecimale e trasforma in int --
    Aggiunge tanti 0 a sx fino a quando la stringa diventa 8 caratteri -- x - y inizio e fine '''

    var = str(var)
    var = var[x:y].lstrip('0')
    var = hex(int(var))
    var = var[2:].zfill(8)
    #print(var)
    return var

    PCBA_SN_COD = str_comp(PCBA_SN, 8, 15)

    PCBA_SN_COD = PCBA_SN[6:8] + PCBA_SN[4:6] + PCBA_SN_COD + PCBA_HW + '0'
    print(PCBA_SN_COD)

    print(COD_PROD)
    print(SW_1)



    il file rep1, da dare come input è il seguente

    1,0;
    ECU=033323220000236
    PCBA=033223200000134
    CODICE_PROD=ABC12345-1000
    PCBA_HW=01
    CODICE_01=00AB10
    OMOL_01=01-01-23 1037
    SW VERS1=0103

    L'output sul terminal di VSC è il seguente

    PS C: "C:/Program Files/Python39/python.exe" c:/Python/Esempio.py
    Inserisci il nome_file: rep1
    T23623000002360
    202300000086010
    ABC12345-1000
    0103
























  • Le Funzioni in Python: definizione, chiamata, esecuzione, come posso andare in uno specifica punto del programma dopo vaver eseguito una funzione ?
    Forum >> Principianti
    Salve,





    sono un elettronico votato alla programmazione e sono un neo iscritto a questo forum.




    Ho iniziato a programmare in Python e fatto alcuni programmini che "manipolano" file di testo e poi li stampano.




    Mi è chiaro tutto ciò che riguarda la Funzione cioè definizione, chiamata, esecuzione ecc.. e quindi mi è chiaro che una funzione , quando viene eseguita, memorizzi in punto del programma in modo che dopo l'esecuzione del codice ritorni a quel punto.




    Invece, mi trovo a risolvere la seguente questione: ho una funzione (ricerca su file) che se trova il parametro impostato, esegue il codice ecc... ma se non trova il parametro impostato esce e chiama un'altra funzione che esegue il suo codice e NON DOVREBBE ritornare alla funzione precedente MA andare in un punto specifico del programma.




    Come posso risolvere il problema ?




    LR