Bonjour j'essaye de faire un truc, voilà une explication,
Par exemple j'ai:
Ligne = <balise> coolcoolcool<balise> hahahah<balise>...
Ma fonction ExtractData dois me rendre: coolcoolcool seulement, et alors ca va pas :s, et j'ai une erreur à chaque fois que je lance le programme, en me disant que mon programme à rencontrer un bug...bla bla bla
Voilà le code de ma fonction: (peut etre l'algo n'est pas bon ou je me suis gouré quelque part mais j'vois pas :$, je m'arache avec ca depuis midi lol)
ma fonction addChar:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 char* ExtractData (char* buf, int pos){ //Extrait une donnée d'une ligne en ignorant les balises html //return: char* char *data;// chaine à retourner data = malloc (LINE*sizeof(char));//j'alloue la memoire necessaire memcpy (data, 0, sizeof(data)); // je remplie avec des zero while(1){//Boucle infinie pour ignorer les balise if (buf[pos]=='<'){ while ((buf[pos]!='\0')&&(buf[pos]!='>')) pos++; pos++; } else//quand j'ai plus de balises je quitte ma boucle break; } while ((buf[pos]!='<')&&(buf[pos]!='\0')){ data = addChar(data, buf[pos]); // je recupere le caractere pos++; } printf ("%s\n",data); return data; }
Voilà comment j'appel ma fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 char* addChar (char* data, char C){ //Ajoute le caractere C a la chaine data //return: char* char* tmp = data; sprintf(tmp,data, C); return (tmp); }
Merçi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 int BuiltBBCode (void){ char *Line, *data; int cpt=0; Line = malloc (LINE*sizeof (char)); data = malloc (LINE*sizeof (char)); while (fgets(Line, LINE, src)!=NULL){ data = ExtractData (Line, cpt); // extraire la donnée a la position cpt if(fputs (data ,dest)==EOF){// j'écrit ma donné en sortie printf("error"); return -1; } cpt++; fflush (dest);//ecriture immediate du tompon } return 0; }
Partager