1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
| void recupXML()// permet de lire le fichier xml
{
register short int i=-1;
register unsigned int j=0;
FILE * fp = NULL;
char * chaine = (char *)malloc(256*sizeof(char));
if(chaine == NULL)
{
printf("Memoire insuffisante, arret du programme.");
exit(1);
}
if((fp = fopen("data.xml","r+"))==NULL)
{
printf("ERREUR LORS DE L'OUVERTURE DU FICHIER\n");
exit(1);
}
while(fgets(chaine, 255, fp))
{
if(!strcmp(chaine, "</automatisation>"))
break;
chaine = formatAff(chaine, i, j);
if(i==6)
{
i=1;
j++;
}
else
i++;
}
fclose(fp);
}
char * formatAff(char * chaine, int i, int j)// permet de parser le xml( recuperer le contenu entre balises)
{
char * tampon = (char *)malloc(256*sizeof(char));
if(tampon == NULL)
{
printf("Memoire insuffisante, arret du programme.");
exit(1);
}
switch(i)
{
case 2:// balise nom
tampon = couperDebut(chaine,13);
tampon = couperFin(tampon, 11);
break;
case 3://balise adresse
tampon = couperDebut(chaine, 21);
tampon = couperFin(tampon, 19);
break;
case 4:// balise heure
tampon = couperDebut(chaine,11);
tampon = couperFin(tampon, 9);
break;
case 5://balise date
tampon = couperDebut(chaine,10);
tampon = couperFin(tampon, 8);
}
return tampon;
}
char * couperDebut(char * chaine, int n)// coupe les premieres balises"<>"
{
register int i=0;
char * tampon = (char *)malloc(256*sizeof(char));
if(tampon == NULL)
{
printf("Memoire insuffisante, arret du programme.");
exit(1);
}
for(i=0;i<256;i++)
{
if(chaine[i]=='\0')
break;
tampon[i] = chaine[i+n];
}
tampon[i] = '\0';
return(tampon);
}
char * couperFin(char * chaine, int n)// couper les derniere balises "</>"
{
register int i;
char * tampon = (char *)malloc(256*sizeof(char));
if(tampon == NULL)
{
printf("Memoire insuffisante, arret du programme.");
exit(1);
}
for(i=0;i<256;i++)
{
if(chaine[i+n]=='\0')
break;
tampon[i] = chaine[i];
}
tampon[i]='\0';
return(tampon);
}
void recupheuredate(){// recupere separement la date et l heure systeme
/* Lecture de la date et de l'heure */
time_t timestamp=time (NULL);
struct tm t = *localtime(×tamp);
char sheure[128];
char sdate[128];
/* Affiche la date et l'heure courante (format français) */
setlocale(LC_ALL, "");
strftime(sdate,sizeof sdate,"%A %d %B %Y ", &t);
strftime(sheure,sizeof sheure, "%Hh %Mmin %Ssec",&t);
printf ("%s\n",sdate);
printf ("%s\n",sheure);
} |
Partager