codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
FILE *fpa, *fpb, *fpouta, *fpoutb, *fpab, *fprab;
char *nomefilein;
int r, s, p, i, a, b;
int long timestamp, time_ona, time_offa, time_onb, time_offb;
int long timeavera, timeaverb, timeroama, timeroamb;
int long time_on, time_off, time_associa, time_ricorre, time_prec;
char *APa, *APb; // oppure con i vettori
char c;
printf("Inserire il nome del file A:\n");
scanf("%s", &nomefilein);
fpa=fopen(nomefilein, "r");
if(fpa==NULL){printf("Impossibile aprire il file\n");
exit(1);
}
while((a = getc(fpa))!= EOF)
{
r=0;
do{ // Read line file A
while(c!=' ') // Read timestamp A
{ timestamp=0;
for(i=0; i<10; i++)
{ fscanf(fpa, "%c", &c);
timestamp+=(c-'0')*power(10,9-i);
}
}
fscanf(fpa, "%s", &APa); // Read AP A
r=0 ? time_ona=timestamp : r++;
} while(APa != "OFF");
time_offa=timestamp;
if(r=0){ timeavera=time_offa-time_ona; //formula empirica
fpouta=fopen("mediaA.txt", "a"); //stampo risultati A out
fprintf(fpouta, "%10d\n", timeavera); //tempo medio utente A
close(fpouta);
}
else { timeroama=time_offa-time_ona; //tempo roaming A
fpouta=fopen("roamA.txt", "a");
fprintf(fpouta, "%10d\n", timeroama);
close(fpouta);
}
printf("Inserire il nome del file B:\n");
scanf("%s", &nomefilein);
fpb=fopen(nomefilein, "r");
if(fpb==NULL){printf("Impossibile aprire il file\n");
exit(2);
}
while((b = getc(fpb))!= EOF)
{ p=0;
s=0;
do{ // Read line file B
while(c!=' ') // Read timestamp B
{ timestamp=0;
for(i=0; i<10; i++)
{ fscanf(fpb, "%c", &c);
timestamp+=(c-'0')*power(10,9-i);
}
}
fscanf(fpb, "%s", &APb); // Read AP B
s=0 ? time_onb=timestamp : s++;
} while(APb != "OFF");
time_offb=timestamp;
if(s=0){ timeaverb=time_offb-time_onb; //formula empirica
fpoutb=fopen("mediaB.txt", "a"); //stampo risultati B out
fprintf(fpoutb, "%10d\n", timeaverb); //tempo medio utente B
close(fpoutb);
}
else { timeroamb=time_offb-time_onb; //tempo roaming B
fpoutb=fopen("roamB.txt", "a");
fprintf(fpoutb, "%10d\n", timeroamb);
close(fpoutb);
}
if(APa=APb && time_offb>time_ona && time_onb<time_offa)
{ time_on = (time_ona > time_onb) ? time_ona : time_onb; //max
time_off = (time_offa < time_offb) ? time_offa : time_offb; //min
time_prec = time_off;
time_associa = time_off-time_on;
fpab=fopen("AB.txt", "a"); //tempo di associaz. A B
fprintf(fpab, "%10d\n", time_associa);
close(fpab);
if(p>0){time_ricorre=time_on-time_prec; //tempo ricorrenza assoc.
fprab=fopen("RAB.txt", "a");
fprintf(fprab, "%10d\n", time_ricorre);
close(fprab);
}
}
p++; // contatore righe di B
}
fclose(fpb);
}
fclose(fpa);
system("PAUSE");
return 0;
}