Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: akrobaticone - 25 Luglio 2010, 22:13:16

Titolo: Suggerimento per cronologia
Inserito da: akrobaticone - 25 Luglio 2010, 22:13:16
In un programma che sto sviluppando vorrei tenere una cronologia degli eventi e a richiesta visualizzarla in una area di testo in una form
Il programma è la gestione di una manifestazione aeromodellistica e gli eventi sono del tipo:
inizio volo, fine volo, prenotazione volo etc.
la cronologia verrà poi visualizzata con data ora ed evento
pensavo di appoggiarmi ad un file temporaneo, ma accetto qualsiasi suggerimento

Grazie
Titolo: Re: Suggerimento per cronologia
Inserito da: Picavbg - 25 Luglio 2010, 22:41:01
In un programma che sto sviluppando vorrei tenere una cronologia degli eventi e a richiesta visualizzarla in una area di testo in una form
Il programma è la gestione di una manifestazione aeromodellistica e gli eventi sono del tipo:
inizio volo, fine volo, prenotazione volo etc.
la cronologia verrà poi visualizzata con data ora ed evento
pensavo di appoggiarmi ad un file temporaneo, ma accetto qualsiasi suggerimento
Grazie
Non so se pensi ad un archivio storico perenne; in ogni caso, secondo me, puoi utilizzare sia la strada del file sequenziale da riscrivere interamente ad ogni aggiornamento, sia ad una Tabella di DB, anche se un DB con una sola tabella mi sembra alquanto striminzito.
I campi record potrebbero essere:
1) Data Manifestazione (AAAAmmGG)
2) Luogo di svolgimento
3) Ora (hhmmss)
4) Data e ora della prenotazione
5) Numero di iscrizione
6) Ora Inizio Volo  (hhmmss)
7) Ora fine Volo  (hhmmss)
Se detti elementi vanno bene, poi resterebbe da impostare la/le Form di inserimento/visualizzazione  dati.
Ciao.
Titolo: Re: Suggerimento per cronologia
Inserito da: akrobaticone - 25 Luglio 2010, 23:30:35
 la cronologia è temporanea  e dovrebbe cancellarsi alla chiusura del programma
gli eventi sono la storia della giornata
esempio

12:00 pippo  inizio volo
12:05 aggiunto pilota minni
12.07 pluto prenotazione volo
12:08 pluto annulla prenotazione

etc....


un file sequenziale lo apro all'avvio del programma, lo aggiorno ad ogni evento e lo posso leggere anche se è ancora aperto per trasferire il suo contenuto in una text area?

se così è potrebbe fare al caso mio
 

Titolo: Re: Suggerimento per cronologia
Inserito da: Ceskho - 26 Luglio 2010, 10:58:48
Un file di testo dovrebbe fare proprio al caso tuo. A meno chè tu non gestisca un vero aeroporto internazionale allora la mole di dati che ci salvi dentro non dovrebbe crearti problemi di rallentamenti. Salvi ogni avvenimento in una nuova riga così da avere una cosa del tipo:

[24/07/10 08:30] Pippo chiede permesso di volo
[24/07/10 08:30] Pippo ottiene permesso di volo
[24/07/10 09:32] Pippo finisce il volo
[24/07/10 10:20] Carlo chiede permesso di volo
[24/07/10 10:22] Carlo ottiene permesso di volo
[24/07/10 10:22] Carlo annulla permesso di volo
Titolo: Re: Suggerimento per cronologia
Inserito da: akrobaticone - 26 Luglio 2010, 11:06:49
Quindi riassumendo
salvo ogni nuova riga facendo PRINT sul file
se nello svolgimento del programma ho bisogno di visualizzare il file
lo apro con OPEN nonostante sia ancora aperto e carico le righe che ho salvato
queste cose le riuscirò a provar solo questa sera..
Titolo: Re: Suggerimento per cronologia
Inserito da: Ceskho - 26 Luglio 2010, 11:23:10
Quindi riassumendo
salvo ogni nuova riga facendo PRINT sul file
se nello svolgimento del programma ho bisogno di visualizzare il file
lo apro con OPEN nonostante sia ancora aperto e carico le righe che ho salvato
queste cose le riuscirò a provar solo questa sera..


A grandi linee si....tieni presente che qualora tu volessi creare uno storico devi ricorrere ad un database (sqlite è perfetto) così puoi filtrare e cercare facilmente i tuoi dati. Ma se a te interessa solo la "quotidianità" allora il file di testo, a mio modesto parere è il miglior strumento finché i dati sono relativamente pochi. Se aumentano allora devi puntare su qualcos'altro.
Titolo: Re: Suggerimento per cronologia
Inserito da: akrobaticone - 26 Luglio 2010, 11:36:02
OK Grazie mille
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: md9327 - 26 Luglio 2010, 11:43:53
Ma i dati che vuoi salvare sono temporanei, ovvero esistono solo durante il funzionamento del programma, a che ti serve il file?

Nel caso puoi usare un array interno... tanto poi lo butti...
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: doublemm - 26 Luglio 2010, 13:43:39
perchè, se accidentalmente si spegne il pc, almeno recupera la giornata :hatecomputer:
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: akrobaticone - 26 Luglio 2010, 14:05:08
mi hai tolto le parole di bocca...

in ogni caso provo le diverse soluzioni e poi vi faccio sapera
grazie per la collaborazione
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: md9327 - 26 Luglio 2010, 14:22:31
E si compra un gruppo di continuità, no??? :-)

Scherzo!!!

Se è questo il motivo, devi pure gestire la possibilità del ripristino all'avvio dell'applicazione...
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: doublemm - 26 Luglio 2010, 14:58:51
io scriverei nel file di testo fino a quando non decido di cancellarlo per esempio nel form un tasto 'nuovo giorno'. Così se accidentalmente un aeromodello finisce nei cavi dell'alta tensione e mi spegne il pc  :death: :devil: quando rilancio il prog. mi va a leggere il file in precedenza creato.
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: akrobaticone - 26 Luglio 2010, 15:02:03
io scriverei nel file di testo fino a quando non decido di cancellarlo per esempio nel form un tasto 'nuovo giorno'. Così se accidentalmente un aeromodello finisce nei cavi dell'alta tensione e mi spegne il pc  :death: :devil: quando rilancio il prog. mi va a leggere il file in precedenza creato.
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: Ceskho - 26 Luglio 2010, 15:06:01
io scriverei nel file di testo fino a quando non decido di cancellarlo per esempio nel form un tasto 'nuovo giorno'. Così se accidentalmente un aeromodello finisce nei cavi dell'alta tensione e mi spegne il pc  :death: :devil: quando rilancio il prog. mi va a leggere il file in precedenza creato.

Effettivamente ha ragione md[etc...]. Avere il file di testo prevede comunque che tu debba controllare se esso esiste poichè può essere che se il computer si spegne accidentalmente tu possa riavviare e non perdere la giornata.
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: akrobaticone - 26 Luglio 2010, 15:06:50
Manca solo l'invasione delle cavallette!

In effetti un rirpistino potrebbe far comodo
dovrei salvare la situazione a intervalli regolari in un secondo file temporaneo
il programma dovrebbe girare su un portatile per cui se va via la corrente si dovrebbe avere il tempo di salvare il tutto
ogni volta che guardo il programma mi vengono in mente nuove funzionalità.
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: Ceskho - 26 Luglio 2010, 15:11:22
Manca solo l'invasione delle cavallette!

Un programma è funzioanle quando è semplice e copre tutte le esigenze possibili con semplicità. Potrà sembrarti paranoico ma una persona che si trova in tale situazione e nota che c'è un ripristino ti ringrazierà centomillemilavolte1

Citazione
In effetti un rirpistino potrebbe far comodo
dovrei salvare la situazione a intervalli regolari in un secondo file temporaneo

Non c'è bisogno...basta che salvi il tuo file in una cartella nascosta del desktop e lo cancelli quando chiudi il programma. Se il programma si interrompe di colpo non scatenerà mai la chiusura del form e perciò ilfile rimarrà lì....tu devi controllare all'avvio che ci sia.

Citazione
il programma dovrebbe girare su un portatile per cui se va via la corrente si dovrebbe avere il tempo di salvare il tutto
ogni volta che guardo il programma mi vengono in mente nuove funzionalità.

Questo vuol dire avere fantasia e per chi sviluppa è un bene.
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: doublemm - 26 Luglio 2010, 15:16:13
le catastrofi servivano per dare una nota umoristica alla discussione  :P

Citazione
ogni volta che guardo il programma mi vengono in mente nuove funzionalità.

penso sia normale. A me succede praticamente sempre di iniziare con un piccolo programmino e poi aggiungere aggiungere e se non mi dico basta andrei avanti all'infinito

Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: md9327 - 26 Luglio 2010, 15:18:32
A parte il "RISOLTO" nel titolo che, a quanto sembra, non sia proprio idoneo, posso accennare un'altra cosuccia.

In caso si "spenta" del pc, se il file è gestito in modalità sempre aperto, ti perdi tutto ugualmente, dato che il flush (ovverossia il consolidamento dei dati su disco) avviene solo o alla chiusura (automaticamente), oppure a seguito dell'apposita istruzione.
Dato che, presumo, questo file non venga aggiornato in maniera pesante, si può ipotizzare un salvataggio dei dati quando server, aprendo-salvando-chiudendo il file nello stesso tempo, magari con una piccola funzioncina ad-hoc.

Se poi, per colpa di "cesko", ti cade un fulmine tra "capo e collo", così tanto gli scappa, allora credo tu debba proteggere il suddetto pc con un bel parafulmine, oppure rinchiuderti in una bella scatola di rame messa opportunamente a massa.
Non sò che aeromodelli usate, ma spero che siano degli stealt un pò troppo realistici, con tanto di bombe al plutonio, altrimenti manco sotto terra ti salvi... :-)
Ma poi, dico io, ma proprio in mezzo ai tralicci dovete far volare 'sti benedetti aeroplanini? Ecchediamine... :-)
Titolo: Re: [RISOLTO]Suggerimento per cronologia
Inserito da: Ceskho - 26 Luglio 2010, 15:27:08
In caso si "spenta" del pc, se il file è gestito in modalità sempre aperto, ti perdi tutto ugualmente, dato che il flush (ovverossia il consolidamento dei dati su disco) avviene solo o alla chiusura (automaticamente), oppure a seguito dell'apposita istruzione.
Dato che, presumo, questo file non venga aggiornato in maniera pesante, si può ipotizzare un salvataggio dei dati quando server, aprendo-salvando-chiudendo il file nello stesso tempo, magari con una piccola funzioncina ad-hoc.

Ma tenere il file aperto effettivamente non ha un gran senso. Tieni presente che se apri il file, ci scrivi dentro, lo mostri in una texarea e lo chiudi, la textarea rimane sempre visibile e l'utente manco si accorge di cosa acciderboladiamineporcaccia sta succedendo sotto!!!

Viva i fulmini..... :hatecomputer:....yuppy!!!!
Titolo: Re: Suggerimento per cronologia
Inserito da: md9327 - 26 Luglio 2010, 15:53:02
Era ovviamente un appunto, un chiarimento.

Ad ogni modo, tieni conto che utilizzare un file aperto è perfettamente giustificabile, se da questo dipende la velocità di una determinata logica.
Per aprire e chiudere un file è sempre necessario un certo periodo di tempo, e questo può essere alquanto fastidioso in determinati casi.
Titolo: Re: Suggerimento per cronologia
Inserito da: Ceskho - 26 Luglio 2010, 15:58:38
Era ovviamente un appunto, un chiarimento.

Ad ogni modo, tieni conto che utilizzare un file aperto è perfettamente giustificabile, se da questo dipende la velocità di una determinata logica.
Per aprire e chiudere un file è sempre necessario un certo periodo di tempo, e questo può essere alquanto fastidioso in determinati casi.

Ci sarebbe da sviluppare un bel confronto istruttivo a riguardo ma finiamo per essere OT se non applicato all'argomento in questione.... :)
Titolo: Re: Suggerimento per cronologia
Inserito da: akrobaticone - 26 Luglio 2010, 16:08:59
le catastrofi servivano per dare una nota umoristica alla discussione  :P

dopo una coincidenza così  pensavo solo ad una disgrazia epocale...

purtroppo I fili dell'alta tensione ho avuto modo di assaggiarli :'(

Comunque ricapitolando

La cronologia posso ottenerla con un array che però si cancella in caso di crash oppure aprendo-scrivendo-chiudendo un file

il salvataggio del sistema nello stesso modo periodicamente e cancellando il file alla chiusura del programma
se all'apertura lo trovo ancora vuol dire che è successo qualche cosa e posso ripristinare la situazione

tolto[RISOLTO]..


Titolo: Re: Suggerimento per cronologia
Inserito da: Picavbg - 26 Luglio 2010, 23:12:02
Scusate tutti, ma non vi sembra che il problema non sia poi tanto gigante  da impegnare così tanto?
Addirittura si potrebbero prendere gli appunti necessari, senza scomodare Gambas, in un semplicissimo foglio elettronico; tuttavia, volendo sfruttare Gambas per conoscerlo meglio, personalmente, penso che caricando all'accensione il file in memoria, giustamente dentro un array, basterebbe aggiornare il file aggiungendo il nuovo record, dopo una Open for append; ciò legato ad un inserimento di un nuovo elemento nell'array, Mentre si dovrebbe riscrivere interamente in seguito ad una modifica od all'eliminazione di un elemento dell'array.

Che si posssano verificatre coincidenze remote, come lo spegnimanto improvviso ed inatteso del pc proprio a cavallo di una cancellazione e riscrittura del file, scrigno prezioso dei dati in gestione, é a mio avviso un aspetto più teorico che pratico. Penso che si potrebbe trascurare, ma se proprio vogliamo gestirlo, potremmo utilizzare due file sequenziali con una gestione di tipo flip flop, cioé leggo il file più giovane, per es. il file1.text e
- alla 1^ variazione nell'array, di tipo inserimento, modifica o cancellazione, riscrivo interamente il file utilizzando questa volta il file2.txt;
- alla 2^ variazione nell'array, riscrivo interamente il file utilizzando ora invece il file1.txt;
e così via.
 ;)