Numerazione progressiva

di il
2 risposte

Numerazione progressiva

Buona serata a tutti,sono nuovo del mondo java e in generale se scrivo qualche linea di codice é solo come passatempo (a mezzo secolo di vita non pretendo certo di farne una professione) ora ho un problema che nonostante le mie ricerche non sono riuscito a risolvere:
devo assegnate una numerazione progressiva ogni volta che viene premuto un button, e fino a li ci sono, la numerazione vene correttamente salvata in un file di testo, il problena sorge quando dopo la chiusura dell' applicazione vorrei ripartire dal numero salvato nel file mentre invece riparte ogni volta da 0. chi puo' suggerirmi una soluzione o un link dove trovare una spiegazione comprensibile ?
premetto che il valore viene scritto su una label e viene salvato come string.
grazie anticipatamente a chi vorra' aiutarmi.
pacman

2 Risposte

  • Re: Numerazione progressiva

    Quello che descrivi e' una situazione classica.

    Vediamola in termini generici:

    - un'applicazione, durante la sua esecuzione, ha uno STATO, che e' dato dal corrente valore di TUTTE le variabili locali e lobali.
    - poiche' lo STATO e' mantenuto in MEMORIA PRINCIPALE, come ben sai, la MEMORIA PRINCIPALE NON E' PERSISTENTE, cioe' ogni volta che mandi in esecuzione l'applicazione, lo STATO della tua applicazione riparte dallo stato iniziale.

    Quindi, quello che ti serve e':
    - SUDDIVIDERE lo stato della tua applicazione in DUE gruppi distinti: 1) uno STATO PERSISTENTE, che viene mantenuto tra un'esecuzione e l'altra della tua applicazione, 2 2) uno STATO TRANSIENTE, che riparte dallo stato iniziale ogni volta che l'applicazione riparte.

    E' ovvio che lo STATO PERSISTENTE deve essere il piu' piccolo possibile, per n-mila ragioni, la principale delle quali e' la SEMPLICITA'.

    Ora, identificato quale siat lo STATO che deve essere PERSISTENTE, come fare per implementarlo?

    Semplice: devi usare la MEORIA PERSISTENTE del tuo computer, cioe' il DISCO RIGIDO.

    Quindi, in qualche modo, il tuo STATO PERSISTENTE deve essere SALVATO su disco quando l'applicazione esce, e RILETTO quando l'applicazione riparte. Il problema puo' nascere la PRIMA VOLTA che la tua applicazione parte, in cui NON ESISTE ANCORA un PRECEDENTE SALVATAGGIO dello stato persistente, ma questo puo' essere risolto creandolo a MANO (tanto, comunque, avrai eseguito la tua applicazione N-mila volte durante lo sviluppo).

    Ora, come si salva uno STATO persistente su DISCO?
    Ci sono N-MILA soluzioni:
    - uso di un file di tipo ASCII: in questo caso puoi usare dei formati ormai consolidati per questo tipo di attivita: XML, JSON, file di properties, oppure un formato inventato di tuo gradimento (nel 99.9999% dei casi, pessima scelta)
    - uso di un file binario ed il supporto alla Serializzazione fornita da Java, oppure un formato di tuo gradimento (nel 99.9999% dei casi, pessima scelta)
    - uso di un DBMS (database Management System): compito del DBMS e' proprio quello di mantenere le informazioni PERSISTENTI e permetterne la loro manipolazione.

    Se non hai molte informazioni persistenti da leggete/scrivere, la soluzione piu' semplice e' il file di properties
  • Re: Numerazione progressiva

    Grazie migliorabile per la tua risposta chiara ed esauriente, al momento sto utilizzando un normalissimo file di testo per salvare diciamo lo stato persistente (la numerazione progressiva), il problema avveniva durante la riapertura dell' applicazione ovvero quando doveva andare a rileggere il file.
    Al momento scopiazzando qua' e la' sono riuscito a farlo funzionare anche se non mi piace affatto l' idea di non avere il controllo chiaro di quello che sto facendo.
    mi piace l' idea del file xml, puoi consigliarmi cortesemente una guida comprensibile suua sua gestione?
    Ho gia' un paio di libri sul java ma sono troppo sado-masochistici per me, riesco ad assimilare meglio andando x esempi.
    Grazie nuovamente x avermi dedicato parte del tuo tempo
    pacman
Devi accedere o registrarti per scrivere nel forum
2 risposte