Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Python] problema nell'utilizzare l'applicazione più volte

    Ho creato una interfaccia grafica con Tkinter, fornisco dei dati e l'indirizzo di un file di testo. Cliccando su un tasto appositamente creato richiamo una funzione presente in un altro modulo fornendole i dati appena immessi.
    Questa funzione fa una serie di operazioni richiamando a sua volta altri moduli ed interpretando il file di testo.
    Ultimato il suo compito con successo e tornatati all'interfaccia grafica mi accorgo che se riclicco sul pulsante di prima il tutto va in errore, cosa che non mi aspettavo.

    Immaginiamo che il file di testo sia di 30 righe. Alla prima lettura tutto funziona, quando clicco sul bottone di ok la seconda volta la funzione richiamata cerca di leggere la riga 31 che ovviamente non c'è essendo il file lo stesso.
    Io credevo che ognivolta che richiamo la funzione tutto si azzerasse ma evidentemente non è così.
    Non so proprio come intervenire per risolvere il problema.

  2. #2
    ciao, una buona idea sarebbe dare un'occhiata alla funzione che utilizzi per gestire il contenuto del file di testo.

    saluti

  3. #3
    Il file di testo è gestito da un moduto .so del quale però non ho il sorgente e che quindi non posso conoscere.

  4. #4
    Ho creato una interfaccia grafica con Tkinter, fornisco dei dati e l'indirizzo di un file di testo. Cliccando su un tasto appositamente creato richiamo una funzione presente in un altro modulo fornendole i dati appena immessi.
    Questa funzione fa una serie di operazioni richiamando a sua volta altri moduli ed interpretando il file di testo.
    Ultimato il suo compito con successo e tornatati all'interfaccia grafica mi accorgo che se riclicco sul pulsante di prima il tutto va in errore, cosa che non mi aspettavo.

    Immaginiamo che il file di testo sia di 30 righe. Alla prima lettura tutto funziona, quando clicco sul bottone di ok la seconda volta la funzione richiamata cerca di leggere la riga 31 che ovviamente non c'è essendo il file lo stesso.
    Io credevo che ognivolta che richiamo la funzione tutto si azzerasse ma evidentemente non è così.
    Non so proprio come intervenire per risolvere il problema.
    Cosa vuol dire "va in errore"?
    Se "va in errore" ci sarà un messaggio... incollalo.
    Oltre al codice ovviamente.
    Inoltre cerca di isolare il tuo problema e descriverlo (es: "la funzione x che dovrebbe fare ha questo problema..." invece di "tutta l'applicazione x che dovrebbe fare y ha questo problema").
    Con quello che hai scritto obbiettivamente non ti si può dare una mano.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  5. #5
    Vado nello specifico anche se non credo che riesca ugualmente a farmi capire.
    Premetto che sto cercando di modificare un programma già esistente.

    Nel programma ad un certo punto ci sono queste righe:

    code, seq = gcode.parse(FilE, Canon(), 'g20 g17 g64','')
    if code > gcode.MIN_ERROR:
    raise SystemExit, "%s:%d: %s" % (FilE, seq, gcode.strerror(code))


    dove:
    FilE è una stringa con il percorso del file di testo che gli fornisco io
    Canon() una Classe presente nel programma
    gcode un modulo di cui ho solo il file compilato

    immaginiamo che FilE abbia 1008 righe
    la prima volta che il programma parte tutto funziona correttamente e seq = 1008
    la seconda mi segnala l'errore dicendomi che seq = 1009
    E' come se la seconda volta, pur dando un nuovo FilE, lui vada a cercare di leggere quello vecchio dall'ultima riga della volta precedente.

    Non credo di essere stato più chiaro di prima.
    Una soluzione possibile sarebbe quella di far in modo che una volta avviato il programma, lui esegua tutto, e si riavvii da solo... ma si può fare?

  6. #6
    Se apro più terminali ed eseguo ogni volta il programma non ci sono problemi.
    Si può fare in modo che sia l'applicazione stessa, ultimato il suo compito, ad aprire un altro terminale e ad avviarsi?

  7. #7
    Continuo a non capire il tuo problema che mi pare descritto in maniera più incasinata di prima.
    Ad ogni modo:

    Una soluzione possibile sarebbe quella di far in modo che una volta avviato il programma, lui esegua tutto, e si riavvii da solo... ma si può fare?
    Rattoppi di questo tipo non sono una cosa bellissima da fare.
    Cmq se proprio non hai alternative il modulo subprocess dovrebbe fornirti la possibilità di lanciare sotto processi indipendenti (nel senso indipendenti dal processo che lancia il sotto processo per cui il primo può anche morire senza portarsi dietro il secondo).
    Nella doc trovi molti esempi.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.