LETTURA/SCRITTURA in mod. BINARIA
N.B. si presuppone che il file di testo "date.txt" contengacodice:#include <stdio.h> #include <time.h> int main(){ FILE* pf; long day=0, mon=0, yar=0; struct tm* pt; time_t td; time (&td); pt = localtime (&td); pt->tm_mon++; pt->tm_year = pt->tm_year + 1900; if (!(pf = fopen("date.txt", "rb"))){ printf ("FILE \"date.txt\" NON TROVATO\n"); } else{ fread (&day, sizeof (long), 1, pf); fread (&mon, sizeof (long), 1, pf); fread (&yar, sizeof (long), 1, pf); fclose (pf); } if ((pt->tm_year > yar) || (pt->tm_year >= yar && pt->tm_mon > mon) || (pt->tm_year >= yar && pt->tm_mon >= mon && pt->tm_mday > day)){ pf = fopen("date.txt", "wb"); fwrite (&pt->tm_mday, sizeof (long), 1, pf); fwrite (&pt->tm_mon, sizeof (long), 1, pf); fwrite (&pt->tm_year, sizeof (long), 1, pf); fclose (pf); printf ("FILE \"date.txt\" AGGIORNATO\n"); } else { printf ("FILE \"date.txt\" NON AGGIORNATO\n"); } printf ("DATA SUL FILE: %0.2d %0.2d %4d\n", day, mon, yar); printf ("DATA ODIERNA: %0.2d %0.2d %4d\n", pt->tm_mday, pt->tm_mon, pt->tm_year); return (0); }
soltanto una data (la più aggiornata) ed è scritto/letto in modalità binaria ("non è possibile" quindi editare il file manualmente "tramite NotePad").

Rispondi quotando