Newsgroup: it.comp.lang.c
Titolo: Grep in C.

Ho da aggiornare una specie di statistica giornaliera aggiungendo ogni
giorno in coda a un file una nuova riga, una sola volta al giorno(!).
Adesso ci pensa la shell di Bash con grep a bloccare ogni
duplicazione di righe, ma, essendo la fonte degli aggiornamenti 
un programma in C, vorrei affidare ad esso anche questa
funzione. How to?
Anticipatamente ringrazio con auguri di buone feste.
-- 
Qui si usa Linux
http://www.puppylinux.org

 
o non ti sei spiegato molto bene o io non ho capito...
tieni la string in cache in buffer e quando arriva la nuova se � uguale
alla vecchia non scrivi sul file, se � diversa scrivi e inserisci la
nuova nel buffer.
Perch� devi scrivere duplicati e poi eliminarli dopo?

 ha scritto:
..omissis...
Antefatto:
Al primo avvio del mio pc parte un programma (principale) che calcola le  
effemeridi solari e
segna su un file di testo il minuto esatto dei vari eventi previsti per  
quel giorno.
Il crontab è regolato per scattare ogni minuto e, quando arriva uno dei  
minuti
previsti su quel file (alba, tramonto, culminazione ecc. ma anche  
qualsiasi altra cosa)
fa partire una serie di effetti corrispondenti: cambio dello sfondo e  
delle icone, suoni, avvisi ecc.
Inoltre al primo avvio i dati con il minuto del verificarsi di ciascun  
evento
solare vengono aggiunti a un altro file di testo che serve a costruire  
giorno
dopo giorno delle statistiche annuali.
Esso va aggiornato una sola volta per giorno, non ogni volta che si  
riaccende il computer.
Finora ho ottenuto questo con un paio di righe della shell,usando grep,
ma adesso vorrei affidare anche questo compito al programma principale.
Quesito: col C, come controllare in un file l'esistenza di una riga già  
contenente
la data corrente per decidere se aggiornare o meno?
Saluti.
-- 
Creato con il rivoluzionario client e-mail di Opera:  
http://www.opera.com/mail/


 funzione. How to?
Semplicemente prima di aggiornare il log esegui un controllo per
evitare la duplicazione. Puoi implementare da solo una funzione 
per ricercare una stringa od usare le librerie C per le espressioni 
regolari.

 la data corrente per decidere se aggiornare o meno?
Gli algoritmi per la ricerca di stringhe sono tra gli algoritmi fondamentali
ed il C ha delle funzioni standard per le espressioni regolari.

 
Andrò a cercarle. 
Saluti e auguri di buone feste. 
-- 


 ma adesso vorrei affidare anche questo compito al programma principale.
che roba complicata.
Conviene far andare il programma principale una volta all'anno e
fargli calcolare le effemeridi per tutto l'anno,  e poi cron fa quello
che deve.
Oppure fai fare direttamente al programma C le cose che adesso fai
fare a cron (hint: sleep()).
Ciao Jack

 fare a cron (hint: sleep()).
E' a questo che voglio arrivare. Un unico programma eseguibile che faccia
tutto da solo e che funzioni sul maggior numero possibile di pc.
Certo, con 1440 x 365 = 525600 minuti in un anno, hai voglia a programmarti
ogni momento della vita.
Sul "principale" reso annuale e non più giornaliero scriverei:
if (minuto == 452600) printf("Hai vinto alla lotteria\n");
E resterei in attesa, per vedere se i soldi arrivano veramente... :-)
Saluti e buone feste.


 tutto da solo e che funzioni sul maggior numero possibile di pc.
eh, allora lascia perdere il C e usa un linguaggio multipiattaforma
(java, python,...).
Ciao Jack