Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Scionn - Dicembre 12, 2011, 11:00:09 pm

Titolo: intercettare modifiche file di testo
Inserito da: Scionn - Dicembre 12, 2011, 11:00:09 pm
Salve a tutti, comincio subito con una richiesta.

Un nostro cliente ha un sistema di gestione che produce dei log su file di testo, ogni operazione compiuta dal sistema viene immediatamente riporta con una riga su file.

a fine giornata poi il sistema è in grado di generare delle statistiche di base.

Ora, ci viene chiesto di creare una software per la gestione di statistiche avanzate e soprattutto la realizzazione di un cruscotto che mostri lo stato del sistema in tempo reale.

Analizzare i dati non sarebbe un problema, aprire un file di testo con tracciato definito come un db è fattibile, però lavoreremmo su una "foto" dei dati e non potremmo gestire il cruscotto, tra l'altro lokkeremmo il file e il sistema non avrebbe possibilità di scriverci.

Mi piacerebbe avere un qualcosa che come un tail -f intercetti le nuove righe aggiunte al file e le spari in tempo reale sul db, poi una volta li non sarebbe un problema creare un programma che elabora i dati.

Vi viene in mente niente??
Titolo: Re:intercettare modifiche file di testo
Inserito da: xinyiman - Dicembre 13, 2011, 08:06:41 am
Io procederei nella seguente direzione!

Prenderei i file prodotti ogni 5 secondi li copierei in un'altra parte e analizzerei questi dati, per farlo li metterei in un DB e per ogni riga creerei uno o più codice di hash (lo puoi fare con dcpcrypt) per verificare che  non l'ho già importato! Così dovresti risolvere abbastanza agevolmente...
Titolo: Re:intercettare modifiche file di testo
Inserito da: Scionn - Dicembre 13, 2011, 10:57:21 pm
mmmhhhhh, avevo pensato a un lavoro del genere, ma questo comporterebbe un lavoro continuo e un grosso spreco di risorse, non è sicuramente la via più elegante.

Per ora stò rifiutando la richiesta, se il cliente insiste dovrò fare dei test per vedere le performance di un simile aggeggio, da quello che ho capito a fine giornata ci sono nei file di testo diverse migliaglia di righe, fare questo ogni 5 secondi anche per scoprire che non c'è niente di nuovo non è proprio il massimo.
Titolo: Re:intercettare modifiche file di testo
Inserito da: xinyiman - Dicembre 13, 2011, 11:06:14 pm
Bhe per fare questo devi prima vedere le dimensioni e la data di ultima modifica del file, se è diverso dall'ultima volta letto allora lo analizzi, diversamente no. Già così ti togli una bella mole di lavoro della cpu
Titolo: Re:intercettare modifiche file di testo
Inserito da: Scionn - Dicembre 14, 2011, 05:33:29 pm
Il problema è che il file sarà sempre cambiato, il sistema scrive li in continuo.

quindi ogni volta mi rispazzolo tutto.

la bellezza di avere qualcosa come tail -f è che lui è sempre in ascolto e tira fuori i dati non appena ci vengono scritti, è sempre comunque una porcheria, perchè sarebbe stato meglio che direttamente il sistema sparasse i dati a un db, ma se quello non si può modificare l'unica possibilità è leggere i file, o non fare niente.
Titolo: Re:intercettare modifiche file di testo
Inserito da: brunello - Dicembre 15, 2011, 08:16:20 am
al posto di copiarlo per poi leggerlo, prova a rinominarlo quasi sicuramente il sistema lo ricreerà solo con le righe nuove, ciao Brunello
Titolo: Re:intercettare modifiche file di testo
Inserito da: Scionn - Dicembre 23, 2011, 06:25:04 pm
al posto di copiarlo per poi leggerlo, prova a rinominarlo quasi sicuramente il sistema lo ricreerà solo con le righe nuove, ciao Brunello

questa potrebbe essere la svolta, non ci avevo pensato, anche per dare come certo il fatto che non avrei toccato il funzionamento del sistema come era ora e sarei stato "dietro le quinte" ma così fatto potrebbe essere la soluzione ai nostri problemi, e poi potrei comunque archiviare i file rinominati per il vecchio software.
dovrò provare, in caso vi faccio sapere.