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)
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;
      }
ma fonction addChar:
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);
      }
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
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; 
     }
Merçi