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
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void parse(char contenu[]);
int main(int argc, char *argv[])
{
char *contenu=NULL, chaine[1000]= " ";
FILE *fichier=NULL;
long longueurFichier=0;
fichier=fopen("aliceadsl.txt", "r");
if(fichier!=NULL)
{
fseek(fichier, 0, SEEK_END);
longueurFichier=ftell(fichier);
rewind(fichier);
printf("Longueur : %ld\n", longueurFichier);
contenu=malloc(sizeof(char) * longueurFichier);
while(!feof(fichier))
{
fread(chaine,1000, 1,fichier);
strcat(contenu, chaine);
memset(chaine, 0, 1000);
}
fclose(fichier);
}
parse(contenu);
getchar();
return 0;
}
void parse(char contenu[])
{
char *lien=NULL, breakCmd=0, *pointeurLien=NULL;
char *copieContenu=NULL, *pointeurContenu=NULL;
while(!breakCmd)
{
copieContenu=malloc(sizeof(char) * strlen(contenu));
strcpy(copieContenu, contenu);
lien=strstr(contenu, "<a ");
if(lien==NULL)
{
breakCmd=1;
}
else
{
strtok(lien, ">");
if(strstr(lien, "href=")!=NULL)
{
pointeurLien=strstr(lien, "href=");
pointeurLien+=strlen("href=");
printf("\n\nlien : %s\n\n", pointeurLien);
}
else
{
pointeurLien=lien;
printf("faux lien : %s\n", pointeurLien);
}
pointeurContenu=strstr(copieContenu, pointeurLien);
pointeurContenu=pointeurContenu + strlen(pointeurLien);
contenu[0]='\0';
strcpy(contenu, pointeurContenu);
pointeurContenu=NULL;
lien=NULL;
pointeurLien=NULL;
}
free(copieContenu);
}
printf("Fin parsing!\n");
} |
Partager