Autore Topic: File Append on Top  (Letto 745 volte)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
File Append on Top
« il: 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"? :)

Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: File Append on Top
« Risposta #1 il: 05 Ottobre 2012, 15:29:32 »
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 e qui. 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:
:ciao:

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: File Append on Top
« Risposta #2 il: 05 Ottobre 2012, 15:35:40 »
Sigh :'(

peccato ci speravo...

Grazie!
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: File Append on Top
« Risposta #3 il: 05 Ottobre 2012, 15:42:13 »
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:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: File Append on Top
« Risposta #4 il: 05 Ottobre 2012, 16:15:53 »
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 !
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: File Append on Top
« Risposta #5 il: 05 Ottobre 2012, 18:44:36 »
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.

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.728
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: File Append on Top
« Risposta #6 il: 08 Ottobre 2012, 13:00:52 »
GRAZIE! :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)