Topic: salvataggio programmi  (Letto 62 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline lu

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
salvataggio programmi
« il: Settembre 11, 2021, 12:41 »
Evvabbè, lo chiedo.
Python e Tkinter:
allora, poniamo che imposti un notebook con alcune schede;
poniamo che il codice preveda anche l'aggiunta di altre schede durante l'esecuzione;
poniamo che durante l'esecuzione crei altre schede per altri argomenti.
Al termine dell'esecuzione del programma vengono distrutte queste ultime schede.
Non ho letto su nessun libro qualcosa riguardante la possibilità di conservazione di nuovi elementi creati a runtime.
Esiste questa possibilità, che voi sappiate?
Magari tramite un file di preferenze? (anche se la vedrei un po' complicata che poi forse non lo sarebbe)

(e comunque questo dubbio vale anche per Java)

Grazie per le eventuali risposte, anche se negative.
Un saluto

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.183
  • Punti reputazione: 9
    • Mostra profilo
Re:salvataggio programmi
« Risposta #1 il: Settembre 13, 2021, 11:45 »
Mah sai... "salvare" non è un concetto intrinseco di tkinter, né di Python, né di Java, né di quel che vuoi. "Salvare" è una questione di logica della tua applicazione: sei tu che devi decidere che cosa vuol dire "salvare" nel tuo contesto, che cosa va "salvato", in che modo va "salvato", quando va "salvato".
Non esiste, per dire, una funzione predefinita "save()" in Python che quando la chiami "salva i tuoi dati": perché Python non può auto-magicamente sapere quello che hai in testa quando vuoi "salvare". Allo stesso modo non esiste, per dire, un pulsante magico "save" in tkinter che quando lo clicchi "salva" i tuoi dati. Perché sarebbe appunto un pulsante magico che ti legge il cervello.

Ci sono, questo sì, dei *pattern* di programmazione più o meno consolidati, che si possono applicare in certi contesti. Per esempio, un programma "a schede" come quello che forse hai in mente potrebbe (o magari no... devi deciderlo tu) funzionare con lo stile CRUD appoggiandosi a un database: in pratica ogni "scheda" corrisponde all'ingrosso a un record dentro il database, e manipolare la "scheda" corrisponde a manipolare il record, di base con delle operazioni SQL sottostanti. In questo contesto, "salvare" vuol dire, in ultima analisi, leggere i dati della scheda e fare una query UPDATE o INSERT con questi dati. L'operazione di "salvataggio" si fa su richiesta dell'utente (il pulsante "salva") oppure automaticamente quando si cambia la scheda. Quindi molto raramente (se non mai) ha senso "salvare quando chiudi il programma".
Ma se il tuo programma fosse un editor, per dire, allora il pattern di programmazione per il "salvataggio" sarebbe diverso. E se il tuo programma fosse un gioco in tempo reale, allora sarebbe ancora un altro. E così via.

Offline lu

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re:salvataggio programmi
« Risposta #2 il: Settembre 16, 2021, 12:49 »
Grazie Ric per la risposta.
Chiarisco:
nella fattispecie la domanda mi è sorta nel momento in cui eseguendo il programma di un Notebook con varie schede (riguardanti i miei gatti), mi son reso conto di averne lasciato fuori uno (mea culpa) e mi è appunto sorta la domanda "Ma se aggiungo adesso una scheda, come faccio a conservarla senza stare a toccare lo script originale?".
Un po' come se in LibreOffice Calc aggiungessi una scheda: quella rimane al salvataggio dei dati e alla chiusura del programma e me la ritrovo intatta al riavvio.
Oppure se aggiungessi un qualsiasi altro elemento, che ora non mi viene in mente...
Insomma, i programmi scritti in c o c++ in qualche modo eseguono quel compito.
Ci sarà un modo per farlo anche in Python.
Tu mi dici che la possibilità c'è.
Per puro esercizio intellettule, cosa dovrei studiarmi che possa aiutarmi a capire il come?
Ti ringrazio ancora e buona giornata :)