Gambas-it
Gambas3 => Programmazione => Topic aperto da: kicco - 05 Ottobre 2012, 13:51:47
-
Ciao,
sto registrando degli eventi in un log in formato testo. (data, ora, evento)
Mi piacerebbe che gli eventi nuovi venissero scritti all'inizio del file.
Esiste un Append "al contrario"? :)
-
Ciao,
sto registrando degli eventi in un log in formato testo. (data, ora, evento)
Mi piacerebbe che gli eventi nuovi venissero scritti all'inizio del file.
Esiste un Append "al contrario"? :)
No. puoi anche verificare qui (http://www.gambas-it.org/wiki/index.php/Leggere_e_scrivere_righe_da/su_un_file_di_testo) e qui (http://gambasdoc.org/help/lang/open?it). Per fare quello che vooresti tu, occorrerebbe che ti portassi in memoria tutto il contenuto del file e riscrivessi tutto il file inserendo com record iniziali i nuovi, facendoli seguire poi dai precedenti. Ci sono naturalmente altre possibilità: organizzare un DB (troppo impegnativo per gestire un solo file), organizzare una sequenza di file dove fai seguire al titolo vero e proprio la data di creazione del nuovo file, all'interno di una cartella specifica, e bla ... bla ... bla. Tutto dipende dai volumi che dovrai gestire e come accedere più velocemente alle informazioni che ti servono.
Però, secondo me, non ti costerebbe molto impegno organizzare un file sequenziale da leggere e caricare allo start del programma dentro un array, come descritto in uno degli esempi riportati nel 1° link che ti ho indicato sopra; potrai allora modificarne le righe, implementarle, ridurle come ti parrà durante l'esecuzione del programma e quando sarai sicuro di avere concluso il lavoro di aggiornamento, potrai comandare la scrittura ex novo del file coi record corrispondenti alle righe dell'array presente in memoria.
:ciao:
-
Sigh :'(
peccato ci speravo...
Grazie!
-
Non ti crucciare! Non é poi così terribile. Penso che nel tempo, avrai boisogno anche di sfoltire il file delle informazioni più vecchie, per cui dovrai in ogni caso gestirne un ridimensionamento, anche saltuario. Ma é un file destinato a diventare corposo? Perché ti preoccupa tanto il lavoro di lettura e riscrittura in ciascuna esecuzione del tuo programma gestore?
:ciao:
-
Sigh :'(
peccato ci speravo...
Ciao kikko,
picavbg ha ragione: puoi utilizzare una miriade di soluzioni; tanto più che devi manipolare un file di testo ! Non sempre c'è qualche funzione che fa tutto (per fortuna !).
Del resto, guarda, la prima soluzione, indicata da picavbg, è breve, efficace e facilissima da realizzare: basta 'na variabile stringa !
-
Se il testo è troppo grande potresti avere problemi, soprattutto prestazionali.
Potresti salvare il file precedente in un file di backup, poi crearne uno nuovo dove scrivere il corrente. Infine appendi il contenuto del file di backup al nuovo file.
Se, invece, vuoi salvare le singole righe in modo che siano memorizzate in modo inverso, allora i casi sono due: o usi lo stesso sistema che ti ho indicato, ma per singola riga, oppure usi il metodo suggerito da picavbg.
-
GRAZIE! :)