LETTURA/SCRITTURA in mod. BINARIA
codice:
#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);
}
N.B. si presuppone che il file di testo "date.txt" contenga
soltanto una data (la più aggiornata) ed è scritto/letto in modalità binaria ("non è possibile" quindi editare il file manualmente "tramite NotePad").