Bonjour,
Cela fait 3 semaine que je suis bloqué, j'ai besoin d'aide avant le jeudi 28 mars s'il vous plait.
Code:#include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include "../lib/libgraphique.h" typedef struct connexion { char mois[4]; float janv; float feb; float mar; float avr; float mai; float juin; float juil; float aout; float sep; float oct; float nov; float dec; float total; } connexion_t; void lecture_style() { FILE *fd; char str[1024]; if ((fd = fopen("aecrire.html","r")) == NULL) fprintf(stderr,"ERREUR DE CHARGEMENT DE FICHIER\n"); else { while (!feof(fd)){ fgets(str,1024,fd); printf("%s",str); } fclose(fd); } } void versionweb(float somme,float *tab) { int ta=(int) tab[0]; int tz=(int) tab[1]; int te=(int) tab[2]; int tr=(int) tab[3]; int tt=(int) tab[4]; int ty=(int) tab[5]; int tu=(int) tab[6]; int ti=(int) tab[7]; int to=(int) tab[8]; int tp=(int) tab[9]; int tq=(int) tab[10]; int ts=(int) tab[11]; printf("Content-type: text/html\n\n"); printf("<!doctype html>\n"); printf("<html lang=\"fr\">\n"); printf("<body>\n"); lecture_style(); printf("Depuis le 01/Jan/2018 on a enregistré %f connexions.<br>\n",somme); printf("<div id = \"vertgraph\">\n"); printf(" <ul>\n"); printf(" <li style=\"left: 10px; height: %dpx;\">%d</li>\n",ta*10,ta); printf(" <li style=\"left: 41px; height: %dpx;\">%d</li>\n",tz*10,tz); printf(" <li style=\"left: 72px; height: %dpx;\">%d</li>\n",te*10,te); printf(" <li style=\"left: 103px; height: %dpx;\">%d</li>\n",tr*10,tr); printf(" <li style=\"left: 134px; height: %dpx;\">%d</li>\n",tt*10,tt); printf(" <li style=\"left: 165px; height: %dpx;\">%d</li>\n",ty*10,ty); printf(" <li style=\"left: 196px; height: %dpx;\">%d</li>\n",tu*10,tu); printf(" <li style=\"left: 227px; height: %dpx;\">%d</li> \n",ti*10,ti); printf(" <li style=\"left: 258px; height: %dpx;\">%d</li> \n",to*10,to); printf(" <li style=\"left: 289px; height: %dpx;\">%d</li> \n",tp*10,tp); printf(" <li style=\"left: 320px; height: %dpx;\">%d</li>\n",tq*10,tq); printf(" <li style=\"left: 351px; height: %dpx;\">%d</li> \n",ts*10,ts); printf(" </ul>\n"); printf("</div>\n"); printf("</html>\n"); printf("</body>\n\n"); } void versiongraphique(float somme, float *tab) { int sommes = (int) somme; char stdr[246]; sprintf(stdr,"%d",sommes); int ta=(int) tab[0]; char t0[256]; sprintf(t0,"%d",ta); int tz=(int) tab[1]; char t1[256]; sprintf(t1,"%d",tz); int te=(int) tab[2]; char t2[256]; sprintf(t2,"%d",te); int tr=(int) tab[3]; char t3[256]; sprintf(t3,"%d",tr); int tt=(int) tab[4]; char t4[256]; sprintf(t4,"%d",tt); int ty=(int) tab[5]; char t5[256]; sprintf(t5,"%d",ty); int tu=(int) tab[6]; char t6[256]; sprintf(t6,"%d",tu); int ti=(int) tab[7]; char t7[256]; sprintf(t7,"%d",ti); int to=(int) tab[8]; char t8[256]; sprintf(t8,"%d",to); int tp=(int) tab[9]; char t9[256]; sprintf(t9,"%d",tp); int tq=(int) tab[10]; char t10[256]; sprintf(t10,"%d",tq); int ts=(int) tab[11]; char t11[256]; sprintf(t11,"%d",ts); Point p = {30,50}; ouvrir_fenetre(470,400); dessiner_rectangle((Point){0,0},470,400,blanc); afficher_texte(stdr,12,p,noir); p.y=300; afficher_texte(" Jan Fev Mar Avr Mai Juin Juil Aou Sep Oct Nov Dec",14,p,vert); dessiner_rectangle((Point){30,300-ta*10},30,ta*10,orange); dessiner_rectangle((Point){61,300-tz*10},30,tz*10,orange); dessiner_rectangle((Point){92,300-te*10},30,te*10,orange); dessiner_rectangle((Point){123,300-tr*10},30,tr*10,orange); dessiner_rectangle((Point){154,300-tt*10},30,tt*10,orange); dessiner_rectangle((Point){185,300-ty*10},30,ty*10,orange); dessiner_rectangle((Point){216,300-tu*10},30,tu*10,orange); dessiner_rectangle((Point){247,300-ti*10},30,ti*10,orange); dessiner_rectangle((Point){278,300-to*10},30,to*10,orange); dessiner_rectangle((Point){309,300-tp*10},30,tp*10,orange); dessiner_rectangle((Point){340,300-tq*10},30,tq*10,orange); dessiner_rectangle((Point){371,300-ts*10},30,ts*10,orange); afficher_texte(t0,14,(Point){40,300-ta*9},blanc); afficher_texte(t1,14,(Point){71,300-tz*9},blanc); afficher_texte(t2,14,(Point){102,300-te*9},blanc); afficher_texte(t3,14,(Point){133,300-tr*9},blanc); afficher_texte(t4,14,(Point){164,300-tt*9},blanc); afficher_texte(t5,14,(Point){195,300-ty*9},blanc); afficher_texte(t6,14,(Point){226,300-tu*9},blanc); afficher_texte(t7,14,(Point){257,300-ti*9},blanc); afficher_texte(t8,14,(Point){288,300-to*9},blanc); afficher_texte(t9,14,(Point){319,300-tp*9},blanc); afficher_texte(t10,14,(Point){350,300-tq*9},blanc); afficher_texte(t11,14,(Point){381,300-ts*9},blanc); actualiser(); attendre_clic(); fermer_fenetre(); } void versiontext(float total, float *tab) { printf("Depuis le date on a enregistré %f connexions.\n",total); printf("\tJanvier : %f %%\n", tab[0]); printf("\tFevrier: %f %%\n", tab[1]); printf("\tMars : %f %%\n", tab[2]); printf("\tAvril : %f %%\n", tab[3]); printf("\tMai : %f %%\n", tab[4]); printf("\tJuin: %f %%\n", tab[5]); printf("\tJuillet: %f %%\n", tab[6]); printf("\tAout : %f %%\n", tab[7]); printf("\tSeptembre : %f %%\n", tab[8]); printf("\tOctobre : %f %%\n", tab[9]); printf("\tNovembre : %f %%\n", tab[10]); printf("\tDecembre : %f %%\n", tab[11]); } void decoup(char* array,connexion_t ***u) { int i = 0; int j = 0; for (; array[i]!='/'; i++); i++; for (; array[i] != '/'; i++, j++) (***u).mois[j]=array[i]; (***u).mois[j]='\0'; if(strcmp((***u).mois,"Jan")==0) { (***u).janv++; (***u).total++;} else if(strcmp((***u).mois,"Feb")==0) { (***u).feb++; (***u).total++;} else if(strcmp((***u).mois,"Mar")==0) { (***u).mar++; (***u).total++;} else if(strcmp((***u).mois,"Apr")==0) { (***u).avr++; (***u).total++;} else if(strcmp((***u).mois,"May")==0) { (***u).mai++; (***u).total++;} else if(strcmp((***u).mois,"Jun")==0) { (***u).juin++; (***u).total++;} else if(strcmp((***u).mois,"Jul")==0) { (***u).juil++; (***u).total++;} else if(strcmp((***u).mois,"Aug")==0) { (***u).aout++; (***u).total++;} else if(strcmp((***u).mois,"Sep")==0) { (***u).sep++; (***u).total++;} else if(strcmp((***u).mois,"Oct")==0) { (***u).oct++; (***u).total++;} else if(strcmp((***u).mois,"Nov")==0) { (***u).nov++; (***u).total++;} else if(strcmp((***u).mois,"Dec")==0) { (***u).dec++; (***u).total++;} } void stat(char *av[], connexion_t ***u){ float somme= (***u).total; int sommes= (int) somme; float p[12]; p[0]= (***u).janv; p[1]=(***u).feb; p[2]=(***u).mar; p[3]=(***u).avr; p[4]=(***u).mai; p[5]=(***u).juin; p[6]=(***u).juil; p[7]=(***u).aout; p[8]=(***u).sep; p[9]=(***u).oct; p[10]=(***u).nov; p[11]=(***u).dec; printf("%d\n",sommes); for (int y = 0; y < 13; ++y) { p[y] = (p[y]*100)/somme; } if (strcmp(av[1], "web") == 1) { strcmp(av[1], "web") == 0 ? versionweb(somme,p) : 0; } else{ strcmp(av[1], "-txt") == 0 ? versiontext(somme,p) : 0; strcmp(av[1], "-gr") == 0 ? versiongraphique(somme,p) : 0; } } void par(FILE *fd, char* av[], connexion_t** u) { char st[5000]; while (!feof(fd)){ fgets(st,5000,fd); decoup(st,&u); } stat(av,&u); } int ouv(char* av[],connexion_t* u) { FILE *fd; if ((fd = fopen("/var/log/apache2/access.log","r")) == NULL) { printf("aie"); return (84); } par(fd,av,&u); return (0); } int main(int ac, char* av[]) { if (ac==1){ av[1] = "web"; } connexion_t u; ouv(av,&u); return (0); }
-----