IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Recherche sous chaines inconnues


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut Recherche sous chaines inconnues
    Bonjour à tous,

    je suis actuellement en train de réaliser un projet EN LANGAGE C (uniquement je précise pour ceux qui me conseillerait d'utiliser le PHP ça ne répond pas à mes attentes) me permettant de récupérer sur le web des liens qui m’intéresse pour les stocker sur un fichier et ne conserver que les meilleures après élimination du bruit.

    Bref pour faire simple, j'utilise les sockets pour récupérer le code source d'une recherche google avec des paramètres constituant ma requête, jusque la tout fonctionne.

    Je stocke donc dans un fichier texte tout le source de la première page google, et je voudrais ensuite conserver dans ce code uniquement les liens (une dizaine par page google), c'est à dire garder tout ce qui est contenu entre une balise href=" et " cependant je ne sais pas comment m'y prendre après avoir tout tenté durant des heures du fait que le contenu soit aléatoire.

    Auriez vous une idée ? en PHP un regex m'aurait permis de faire cela en indiquant de garder tout ce qui est contenu entre href=" et " mais en C je bloque.

    Merci d'avance, et bonne journée/nuit

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut,

    J'aurais fait un truc comme ça:

    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
    const char* href = "href=";
    int sizehref = strlen(href);
    for(int i=0; i < bufsize; ++i)
    {
      int found = 1;
      for(int j=0; found && j < sizehref; ++j)
      {
        if(buf[j+i] != href[j])
          found = 0;
      }
      if(found)
      {
         i = read_link(bufsize[i+sizehref+1]); // +1 for the first ".
      }
    }
    je te laisse un peu réfléchir pour la fonction read_link

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 502
    Billets dans le blog
    1
    Par défaut
    Pourquoi ne pas plutôt utiliser la fonction strstr() pour trouver la position d'un lien, pour remplacer la boucle ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    Merci pour ces réponses, cependant je ne pense pas que cela résoudra mon problème, certes cela va trouver le début de chaque liens (strstr() suffit effectivement pour trouver la position de chaque DEBUT de lien) contenu derrière href=" mais je dois cependant uniquement stocker le lien qui sera contenu dans le href=" et se terminant par " sachant que je ne connais pas le lien par avance(seulement la structure "début par href=" et fin avec "), et de manière automatique pour tout le fichier. Au final j'aurai uniquement un fichier texte contenant chaque liens de la première page à analyser et décortiquer.

    D'autres idée ou c'est impossible à faire dans quel cas je vais devoir trouver une autre solution?

    Exemple: extrait de fichier (dix fois plus long)à analyser pour obtenir les liens

    Code HTML : 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
    26
    27
    28
    29
    "b_32 href="http://www.google.fr/reader/view/?hl=fr&tab=wy">Reader</a></li><li cl
    ass=gbmtc><a onclick=gbar.qs(this);gbar.logger.il(1,{t:31}); class=gbmt id=gb_31
     href="http://picasaweb.google.fr/lh/view?q=programmation+systeme+liens+web+pars
    e&um=1&ie=UTF-8&hl=fr&sa=N&tab=wq">Photos</a></li><li class=gbmtc><a onclick=gba
    r.qs(this);gbar.logger.il(1,{t:12}); class=gbmt id=gb_12 href="http://www.google
    .fr/search?q=programmation+systeme+liens+web+parse&um=1&ie=UTF-8&hl=fr&tbo=u&tbm
    =vid&source=og&sa=N&tab=wv">VidÚos</a></li><li class=gbmtc><div class="gbmt gbmh
    "></div></li><li class=gbmtc><a onclick=gbar.logger.il(1,{t:66}); href="http://w
    ww.google.fr/intl/fr/options/" class=gbmt>Encore plus &raquo;</a></li></ol><div
    class=gbsbt></div><div class=gbsbb></div></div></div></li></ol></div><div id=gbg
    ><h2 class=gbxx>Account Options</h2><span class=gbtcb></span><ol class=gbtc><li
    class=gbt><a target=_top href="https://accounts.google.com/ServiceLogin?hl=fr&co
    ntinue=http://www.google.fr/search%3Fq%3Dprogrammation%2Bsysteme%2Bliens%2Bweb%2
    Bparse" onclick=
    7ba
    "gbar.logger.il(9,{l:'i'})" id=gb_70 class=gbgt><span class=gbtb2></span><span i
    d=gbgs4 class=gbts><span id=gbi4s1>Connexion</span></span></a></li><li class="gb
    t gbtb"><span class=gbts></span></li><li class=gbt><a class=gbgt id=gbg5 href="h
    ttp://www.google.fr/preferences?hl=fr" title="Options" onclick="gbar.tg(event,th
    is)" aria-haspopup=true aria-owns=gbd5><span class=gbtb2></span><span id=gbgs5 c
    lass=gbts><span id=gbi5></span></span></a><div class=gbm id=gbd5 aria-owner=gbg5
    ><div class=gbmc><ol id=gbom class=gbmcc><li class="gbkc gbmtc"><a  class=gbmt h
    ref="/preferences?hl=fr">ParamÞtres de recherche</a></li><li class=gbmtc><div cl
    ass="gbmt gbmh"></div></li><li class="gbkp gbmtc"><a class=gbmt href="http://www
    .google.fr/history/optout?hl=fr">Historique Web</a></li></ol></div></div></li></
    ol></div></div><div id=gbx3></div><div id=gbx4></div><script>window.gbar&&gbar.e
    lp&&gbar.elp()</script></div><br style="clear:all"><table border="0" cellpadding
    ="0" cellspacing="0" id="mn" style="position:relative"><div><tr><td width="157"
    rowspan="2" valign="top"><h1><a href="/webhp?hl=fr" id="logo" title="Go to Googl..."

  5. #5
    Membre Expert
    Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 850
    Par défaut
    Il me semble qu'un squelette comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    pos=strstr(buffer,"href=\"");
    while(pos) {
      cur=++pos;
      while(*cur!='"') cur++;
      strcpy(lien,cur-pos);
      pos=strstr(cur+1,"href=\"");
    }
    devrait fonctionner (il faut ajouter un \0 à lien).

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    Encore merci,

    ta méthode edgarjacobs m'intrigue pas mal, cependant mon fichier analysé est un texte du coup actuellement je le traite caractère par caractère. Dois-je transformé mon fichier de type File en chaine de caractère (futur buffer) pour que la fonction strstr puisse fonctionner (effectivement premier argument attendu en char, et non en File)? Si non comment puis-je faire fonctionner ta méthode?

    Actuellement j'analysé caractère par caractère de la manière suivante :je trouve bien mes 10 occurences voulues en initialisant un compteur, mais encore des problèmes pour stocker mon lien contenue entre les balises.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     while( fread(&c,1,1,f)>0 ) {
     
        if( c==strSearch[pos] ) 
        {
    ...

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 502
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jérém08 Voir le message
    Merci pour ces réponses, cependant je ne pense pas que cela résoudra mon problème, certes cela va trouver le début de chaque liens (strstr() suffit effectivement pour trouver la position de chaque DEBUT de lien) contenu derrière href=" mais je dois cependant uniquement stocker le lien qui sera contenu dans le href=" et se terminant par " sachant que je ne connais pas le lien par avance(seulement la structure "début par href=" et fin avec "), et de manière automatique pour tout le fichier.
    Si ton curseur est positionné sur le guillemet suivant href= et que le lien se termine quand tu trouveras le prochaine guillemet....... ton problème est résolu ! Il faut copier ce qui se trouve entre les 2 guillemets.
    Une fois le lien extrait, tu recherches un nouveau href= en partant de la position courante du curseur (qui est sur le second guillemet) et tu recommences l'opération jusqu'à que strstr() te dise qu'il n'y a plus de href= dans le suite de ton fichier.

    Citation Envoyé par Jérém08 Voir le message
    ta méthode edgarjacobs m'intrigue pas mal, cependant mon fichier analysé est un texte du coup actuellement je le traite caractère par caractère. Dois-je transformé mon fichier de type File en chaine de caractère (futur buffer) pour que la fonction strstr puisse fonctionner (effectivement premier argument attendu en char, et non en File)? Si non comment puis-je faire fonctionner ta méthode?
    Deux solutions :
    1. Soit tu travailles directement dans le fichier texte et dans ce cas tu ne peux pas utiliser toutes les fonctions disponibles pour les chaines de caractères.
    2. Soit tu charges le fichier en mémoire comme une chaine de caractères. En entier s'il est petit, morceau par morceau s'il est trop gros. Sauf si la taille de la page Google varie trop (ce dont je doute), tu peux connaitre la taille moyenne de la page et savoir si elle est trop grosse pour être mise en mémoire en entier, en une seule fois.

    Quand tu auras décidé de ça, tu sauras quelles fonctions tu peux utiliser. A mon avis, la solution "charger en mémoire" sera plus rapide et plus souple. A fortiori si tu la charges en une seule fois.

  8. #8
    Membre émérite Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Par défaut
    Citation Envoyé par Bktero Voir le message
    • Soit tu charges le fichier en mémoire comme une chaine de caractères. En entier s'il est petit, morceau par morceau s'il est trop gros. Sauf si la taille de la page Google varie trop (ce dont je doute), tu peux connaitre la taille moyenne de la page et savoir si elle est trop grosse pour être mise en mémoire en entier, en une seule fois.
    S'il charge en mémoire le fichier morceau par morceau, il ne risque pas de couper une adresse en deux à un moment ? Si c'est le cas la gestion du cas n'est-elle pas trop compliquée ou est-ce que charger un morceau du fichier au milieu de la boucle n'est pas trop "sale" pour être réalisé dans un bon code ?

  9. #9
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 502
    Billets dans le blog
    1
    Par défaut
    Ah mais il risque complètement de couper un lien en 2 ! Mais c'est le jeu quand tu charges un fichier en mémoire morceau par morceau.

    En soit, ce n'est pas ultra compliqué. Tu charges une partie du fichier, tu cherches un href=. Si tu trouves pas, tu recharges ; si tu trouves, tu regardes si la fin du lien est dans le buffer, tu peux l'extraire ; sinon, tu recharges un bloc. Le soucis réel serait si un lien était suffisamment long pour ne pas rentrer dans les 2 buffers.

    Faire du bon code propre malgré tout, c'est l'art de la programmation (je ne sais pas si j'y arriverais mais je pourrais essayer).

    Il faut surtout est capable de décider quelle est la bonne méthode parmi les 3 à notre disposition. Ca dépend de la vitesse souhaitée, de la mémoire disponible sur le PC, de la complexité des opérations à réaliser sur les données lues.

  10. #10
    Membre émérite Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Par défaut
    Je vois. Et comme un lien n'est jamais vraiment très long, le risque qu'il y en ai un sur trois parties est ridicule, surtout si on prend une taille de morceau suffisamment grande.
    Et obtenir un code propre est possible à condition de se mettre à fond dessus.

    Merci pour ta réponse.

  11. #11
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 607
    Par défaut
    Bonjour,

    Il reste utile de signaler que les expressions régulières sont également disponibles en C (POSIX).

    Mapper le fichier en mémoire lorsque c'est possible est également un bon moyen de ne pas se soucier de la césure des blocs. Il sera virtuellement projeté en mémoire en entier (si sa taille reste inférieure à celle du plan adressable) puis chargé par blocs de façon transparente en utilisant les mécanismes de la mémoire virtuelle.

  12. #12
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 502
    Billets dans le blog
    1
    Par défaut
    @MythOnirie : et voilà comment on commence à réfléchir à une méthode et un code adapté à son problème
    Pour la taille des URLs, vous pouvez lire ce paragraphe de Wiki : http://en.wikipedia.org/wiki/Query_s...ibility_issues

    @Obsidian : ah si en plus tu nous tends des regexp, on va avoir envie de le charger en entier notre fichier !

  13. #13
    Membre Expert
    Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 850
    Par défaut
    Je stocke donc dans un fichier texte tout le source de la première page google
    Cela métonnerait enormement si une page de résultat google ne pouvait pas tenir en mémoire... sauf, sans doute, sur un pré-précurseur des pc actuels

  14. #14
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 502
    Billets dans le blog
    1
    Par défaut


    Oui bon vu comme ça



    Mais j'essayais de rester général......

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    Merci à tous, cela m'aide grandement, programmant aussi pas mal en PHP (bien que ce ne soit pas un langage pour beaucoup mais plus un langage de balises) j'avais pensé au regex mais je crains que la mise en place en C soit délicate.

    Je pense opter pour charger le source de la page google entièrement en mémoire puis l'analyser avec strstr jusque la fin du lien. J'ai d'ailleurs trouvé une nouvelle astuce, au lieu de prendre le lien dans le href= qui contient pleins de caractère qui ne me plaise pas j'opte pour conserver uniquement le lien contenu entre <cite> et </cite> se qui me réduira encore des erreurs.

    J'attaque donc cette partie très vite travaillant actuellement de nuit et je vous tiens au courant pour l'avancement et les résultats obtenu avec strstr ou autre si celle ci ne convient pas.

    Bonne soirée à vous

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    j'oubliais, de combien d'espace je dispose pour placer en mémoire mon fichier pour savoir si je peux me passer de découpe en bloc?
    Actuellement le source complet extrait (avec la lib curl) et stocké dans un fichier texte me prend 59ko et reste semblable pour toute recherche en faisant varié les paramètres de recherche (mots clefs).

  17. #17
    Membre Expert
    Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    850
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 850
    Par défaut
    Il n'y a pas longtemps, j'ai mis un fichier de 4.232.506 octets en mémoire...

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 79
    Par défaut
    Encore moi, ayant passé la nuit dessus (pour le stockage du premier lien, non encore automatisé bien que cela rajoute simplement une boucle while qui est commenté) cela ne veut toujours pas fonctionner.

    méthode 1: chargement du fichier dans le buffer, recherche de la balise <cite> (cela fonctionne mon test m'affiche bien le texte restant depuis le début de la balise puis désir de recherche de la balise < pour indiquer la fin du lien pour me permettre de le stocker mais cela ne fonctionne pas, je pense mal gérer quelque chose mais ne vois pas quoi.
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
       FILE* pFile;
       long lsize;
       char* buffer;    
     
        int pos;
        int cur;
        char *lien;
        int compt=0;
     
       pFile = fopen( "liens_google.txt" , "rb");
       if (pFile == NULL) return 1;
     
       fseek (pFile, 0 , SEEK_END);  // Obtient la taille du fichier
       lsize = ftell (pFile);
       rewind (pFile);
     
       buffer = (char*) malloc (lsize);   //Alloue mémoire pour le tampon, de la taille du fichier
       if (buffer ==  NULL) return 2;
     
       fread (buffer, 1, lsize, pFile); // copie fichier vers tampon
     
       printf("taille %d  \n", lsize);
     
       pos =  (int) strstr(buffer,"<cite>"); //recherche de la position
     
     //printf(" %s \n", pos);   //ok affiche  le texte restant depuis la balise <cite> inclus
     
     
         // fprintf(fichier_2, "%s", pos);  //ok
        //while(pos)  a décommenter pour automatiser les liens
         {
            cur=+pos;  
           printf("%s",cur);  //ok affiche aussi le texte restant depuis la balise <cite> inclus
     
     
            while( (cur) != '\n')        
            { 
               cur++;
            }
            printf("ko");
         //  strcpy(lien,cur-pos);
         // printf("\n lien: %c", lien);
         // pos=strstr(cur+1,"<cite>");
        }
     
     free(buffer); // libère espace tampon
    fclose (pFile);  // ferme le flux et

    méthode 2, test par hasard avec les pointeurs pour le curseur mais sans résultat, la boucle est toujours mal interprété
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     FILE* pFile;
       long lsize;
       char* buffer;    
     
        int pos;
        int *cur;
        char *lien;
        int compt=0;
     
       pFile = fopen( "liens_google.txt" , "rb");
       if (pFile == NULL) return 1;
     
       fseek (pFile, 0 , SEEK_END);  // Obtient la taille du fichier
       lsize = ftell (pFile);
       rewind (pFile);
     
       buffer = (char*) malloc (lsize);   //Alloue mémoire pour le tampon, de la taille du fichier
       if (buffer ==  NULL) return 2;
     
       fread (buffer, 1, lsize, pFile); // copie fichier vers tampon
     
       printf("taille %d  \n", lsize);
     
       pos =  (int) strstr(buffer,"<cite>"); //recherche de la position
     
     //printf(" %s \n", pos);   //ok affiche  le texte restant depuis la balise <cite> inclus
     
     
         // fprintf(fichier_2, "%s", pos);  //ok
        //while(pos)  a décommenter pour automatiser les liens
         {
            cur=(int*)+pos;  
           // printf("%s",cur);  //ok affiche aussi le texte restant depuis la balise <cite> inclus
     
     
            while( (*cur) != '\n')        
            { 
               cur++;
            }
            printf("ko");
         //  strcpy(lien,cur-pos);
         // printf("\n lien: %c", lien);
         // pos=strstr(cur+1,"<cite>");
        }
     
     free(buffer); // libère espace tampon
    fclose (pFile);  // ferme le flux et
    voici en partie le fichier analysé (qui d'ailleurs rentre sans problème sans découpe)
    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
    26
    27
    28
    29
    30
    HTTP/1.1 200 OK
    
    Set-Cookie: NID=61=bRlerTCrnKt9--B-7ij4Imi-0WAkk7hkFJXy1ZVsYeq3xvMwnobx9c0YY3vBQTg9qIRTAyKEthdpPO1NI-TKcCz0GXQ77c0fJ8Eo3vWWmEnOQywqo8vbqzUeTEVwRUlf; expires=Wed, 16-Jan-2013 02:33:59 GMT; path=/; domain=.google.fr; HttpOnly
    
    Date: Tue, 17 Jul 2012 02:33:59 GMT
    
    Expires: -1
    
    Cache-Control: private, max-age=0
    
    Content-Type: text/html; charset=ISO-8859-1
    
    Set-Cookie: 
    [...]
    
    p;ved=0CBUQFjAB&amp;usg=AFQjCNEhJ-JZKUUqhunMo89SjL4ifd0l_g"><b>Parser</b> une chaine en shell script [Résolu] - Forum des <b>...</b></a></h3><div class="s">Bonjour à tous, J'aimerai <b>parser</b> l'adresse foo.utbm.fr et simplement récupérer <b>...</b> <br>  Dév. <b>Web</b> Développement <b>Web</b> et Webmarketing <b>...</b> Linux Forum d'entraide sur la <br>  <b>programmation</b> Linux : shell, <b>système</b>, . <b>....</b> Merci pour le <b>lien</b>.<br><div><cite>www.developpez.net/.../<b>programmation</b>-<b>systeme</b>/.../<b>parser</b>-chaine-shell-script- resolu/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:vNtzUC_l6CMJ:http://www.developpez.net/forums/d14974/general-developpement/programmation-systeme/linux/parser-chaine-shell-script-resolu/%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></blockquote></li><li class="g"><h3 class="r"><a href="/url?q=http://www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CB0QFjAC&amp;usg=AFQjCNGk7xR7iaPim4AOrmSYXCrz_SW8lw">TP de Compilation: JFlex &amp; CUP</a></h3><div class="s"><b>Parser</b> avec CUP <b>...</b> Installer JFlex pour un <b>système</b> Unix. 1 télécharger jflex-1.x.x.<br>  tar.gz à l'adresse <b>http</b>://jflex.de/. 2 <b>...</b> dans votre répertoire bin ajouter un <b>lien</b> jflex: <br>  <b>....</b> Écrire un <b>programme</b> jflex permettant d'évaluer des expressions post fixées.<br><div><cite>www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:7es-7dIBTUUJ:http://www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CB8QHzAC">Pages similaires</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://fr.wikibooks.org/wiki/Programmation_PHP/Premier_programme&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CCAQFjAD&amp;usg=AFQjCNFaz6YcVEfibZj1ikdwtR1do08-jQ"><b>Programmation</b> PHP/Premier <b>programme</b> - Wikibooks</a></h3><div class="s"><b>Programmation</b> PHP/Premier <b>programme</b> <b>...</b> du code; 3 <b>Parse</b> error; 4 <br>  Standardisation des commentaires; 5 <b>Liens</b>. [modifier] Hello World. Écrivons <br>  notre premier <b>programme</b> PHP. <b>...</b> &lt;?php // <b>Parse</b> error assurée echo 'J'irais bien <br>  boire un coup.'; ?&gt; <b>...</b> <b>Programmation Web</b>/Programmer en deux minutes - <br>  deuxième <b>programme</b> <b>...</b><br><div><cite>fr.wikibooks.org/wiki/<b>Programmation</b>_PHP/Premier_<b>programme</b></cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:JAfjb9gbHSIJ:http://fr.wikibooks.org/wiki/Programmation_PHP/Premier_programme%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:fr.wikibooks.org/wiki/Programmation_PHP/Premier_programme+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CCIQHzAD">Pages similaires</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://www.lesite.com/tutoriel-3-400701-l-axe-parser.html&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CCMQFjAE&amp;usg=AFQjCNGBTdIpDvz5lwuqSGdH3lyK23WXAg">L'Axe <b>Parser</b> - Calculatrices</a></h3><div class="f"><div class="star" style="float:left;margin-top:3px"><div style="width:45px">.</div></div>&nbsp;Note*: 3.7/4&nbsp;-&nbsp;56*votes</div><div class="s">30 avr. 2012 <b>...</b> Site <b>Web</b> (206 Cours) <b>...</b> <b>Systèmes</b> d'exploitation (81 Cours) <b>...</b> <b>Programmation</b> (<br>  265 Cours) <b>...</b> Réalisez votre site <b>web</b> avec HTML5 et CSS3 <b>....</b> Voici quelques <br>  <b>liens</b> pour faire p
    
    1000
    
    artager vos projets ou poser des questions : <b>...</b><br><div><cite>www.lesite.com/tutoriel-3-400701-l-axe-<b>parser</b>.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:FJ3-AjSrEKYJ:http://www.lesite.com/tutoriel-3-400701-l-axe-parser.html%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://fr.wikipedia.org/wiki/Analyse_syntaxique&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CC0QFjAF&amp;usg=AFQjCNFjQXXIq5KF6KQIH1p3GqCP9-dlbA">Analyse syntaxique - Wikipédia</a></h3><div class="s">Un analyseur syntaxique (<b>parser</b>, en anglais) est un <b>programme</b> informatique qui <br>  réalise cette <b>...</b> 1 <b>Liens</b> avec les langages formels; 2 Analyse non contextuelle <b>...</b><br><div><cite>fr.wikipedia.org/wiki/Analyse_syntaxique</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:a7mVv713X-4J:http://fr.wikipedia.org/wiki/Analyse_syntaxique%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:fr.wikipedia.org/wiki/Analyse_syntaxique+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CC8QHzAF">Pages similaires</a></span></div></div></li><li class="g"><blockquote style="margin-bottom:0"><h3 class="r"><a href="/url?q=http://fr.wikipedia.org/wiki/Compilateur&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDAQFjAG&amp;usg=AFQjCNH3bx98s2HQ91nkeM_s9nVxIuCRBA">Compilateur - Wikipédia</a></h3><div class="s">Un compilateur est un <b>programme</b> informatique qui transforme un code source <br>  écrit <b>...</b> (<b>parsing</b>), analyse sémantique, génération de code et optimisation de <br>  code. <b>...</b> le processeur ou le <b>système</b> d'exploitation est différent de celui du <br>  compilateur, on <b>...</b> La compilation est souvent suivie d'une étape d'édition des <br>  <b>liens</b>, pour <b>...</b><br><div><cite>fr.wikipedia.org/wiki/Compilateur</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:Fw5lBLTnQ0QJ:http://fr.wikipedia.org/wiki/Compilateur%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:fr.wikipedia.org/wiki/Compilateur+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDIQHzAG">Pages similaires</a></span></div></div></blockquote></li><li class="g"><h3 class="r"><a href="/url?q=http://www.epsp.cd/parse.html&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDQQFjAH&amp;usg=AFQjCNEOdl5twJiLG_jO8j9AV6Em-lGsYA"><b>PARSE</b> - EPSP</a></h3><div class="s">Les objectifs spécifiques du <b>PARSE</b> sont les suivants : <b>...</b> des donateurs et la <br>  transition future vers un <b>programme</b> couvrant l'ensemble du <b>système</b> éducatif.<br><div><cite>www.epsp.cd/<b>parse</b>.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:JcI94APK-MEJ:http://www.epsp.cd/parse.html%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://perl.developpez.com/cours/&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDYQFjAI&amp;usg=AFQjCNGfDFTBDzXKGn9Wimz_KKdSwlAWjQ">Les meilleurs tutoriels et articles Perl</a></h3><div class="s">Dév. <b>Web</b> Développement <b>Web</b> et Webmarketing <b>...</b> <b>Systèmes</b> Logiciels et <br>  matériels <b>systèmes</b> <b>...</b> Guide de <b>programmation</b> Perl ou comment débuter en Perl <br>  <b>...</b> que de nombreux <b>liens</b> pour vous permettre de vous exercer et d'aller plus loin <br>  !<br><div><cite>perl.developpez.com/cours/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:v6cmBli-DZgJ:http://perl.developpez.com/cours/%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=r
    
    1000
    
    elated:perl.developpez.com/cours/+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDgQHzAI">Pages similaires</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://www.liafa.jussieu.fr/~hf/verif/ens/an09-10/internet/TP3.pdf&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDkQFjAJ&amp;usg=AFQjCNF2qMdWge1W7DlYqTaBLmZjO92djQ">TP3 URLConnection</a></h3><div class="s">A titre indicatif le <b>programme</b> suivant affiche la première ligne de la réponse du <br>  serveur <b>HTTP</b> et tous les <b>liens</b> présents dans l'URL <b>...</b> import javax.swing.text.html<br>  .<b>parser</b>.Element; <b>...</b> <b>System</b>.out.println(&quot;HTTP &quot;+code+ &quot; &quot;+response); <b>...</b><br><div><cite>www.liafa.jussieu.fr/~hf/verif/ens/an09-10/internet/TP3.pdf</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:rujmMZsWR5gJ:http://www.liafa.jussieu.fr/~hf/verif/ens/an09-10/internet/TP3.pdf%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></li></ol></div></div></div><div id="foot"><table align="center" border="0" cellpadding="0" cellspacing="0" id="nav"><tr valign="top"><td class="b" align="left"><span class="csb ch" style="background-position:-24px 0;width:28px"></span><b></b></td><td><span class="csb ch" style="background-position:-53px 0;width:20px"></span><b>1</b></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=10&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>2</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=20&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>3</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=30&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>4</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=40&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>5</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=50&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>6</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=60&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>7</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=70&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>8</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=80&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>9</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=90&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>10</a></td><td class="b" style="text-align:left"><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=10&amp;sa=N" style="text-align:left"><span class="csb ch" style="background-position:-96px 0;width:71px"></span><span style="display:block;margin-left:53px">Suivant</span></a></td></tr></table><p class="flc" id="bfl" style="margin:19px 0 0;t
    
    ddf
    
    ext-align:center"><a href="/support/websearch/bin/answer.py?answer=134479&amp;hl=fr">Aide sur la recherche</a> <a href="/quality_form?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd">Envoyez-nous vos commentaires</a></p><div class="flc" id="fll" style="margin:19px auto 19px auto;text-align:center"><a href="/">Accueil&nbsp;Google</a> <a href="/intl/fr/ads">Publicité</a> <a href="/intl/fr/policies/">Confidentialité et conditions d'utilisation</a> <a href="/intl/fr/about.html">À propos de Google</a></div></div></td><td valign="top"><div id="rhs_block" style="padding-top:5px;border-left:1px solid #c9d7f1"><table cellpadding="0" cellspacing="0" id="mbEnd" style="padding:0;white-space:nowrap"><tr><td class="std" id="rhsline" style="padding-left:8px"><h2 style="margin:0;padding:1px 0 4px;text-align:left">Annonces</h2><ol class="nobr" onmouseover="return true" style="margin-top:-11px"><li><h3><a id="an1" href="/aclk?sa=l&amp;ai=C-7hZF88EUODSJYG5hAfU74CXBreBiu4Cv-n0jRvHkdLZaxABKARQ_YbT1Pr_____AWD7-fyCiAqgAYWA1vwDyAEBqgQbT9BU5QEK3uOQCsY9VsF7oagm74qjxgjos8is&amp;num=1&amp;sig=AOD64_0CrUmCPP_bQrW--KliIapk5suVXQ&amp;adurl=http://www.google.fr/intl/fr/adwords/jumpstart/phone.html%23sourceid%3Dawo%26subid%3Dfr-fr-ha-sk%26medium%3Dcpc%26term%3D%252Bprogramme%2520%252Bliens">Acheter <b>Liens</b> Sponsorisés</a></h3>Trouvez des Nouveaux Clients avec<br>Un <b>Lien</b> Publicitaire sur Google<br><cite>www.google.fr/AdWords</cite><br></li><li><h3><a id="an2" href="/aclk?sa=l&amp;ai=C8fj6F88EUODSJYG5hAfU74CXBoP5lIoC4_7gvhyvze8lEAIoBFCw8Oek______8BYPv5_IKICqABxc3o_gPIAQGqBB1P0ATDXgrd45AKxj1WwXuhqCbviqPGCOizyDSWkw&amp;num=2&amp;sig=AOD64_3W09akN8k1QElD3_Hlqr2VTuWlMQ&amp;adurl=http://www.newprosoft.com"><b>Web</b> Scraping Software</a></h3>Extract specific data from<br>a <b>website</b> to your database<br><cite>www.newprosoft.com/</cite><br></li><li><h3><a id="an3" href="/aclk?sa=l&amp;ai=CTpZnF88EUODSJYG5hAfU74CXBuyxv68CtKTUpyKoprcsEAMoBFCxuoDL_v____8BYPv5_IKICqAB2cqR_wPIAQGpAtj1aHmAmLQ-qgQbT9A0mCAK3OOQCsY9VsF7oagm74qjxgjos8is&amp;num=3&amp;sig=AOD64_3wuhDd6qklTwuLVZ2nghNeOh4E3A&amp;adurl=http://www.pcsoft.fr/webdev/index.html%3Fp%3Dgoogle017Programmez_Internet">Professionnels du <b>WEB</b> :</a></h3>créez vos sites <b>Web</b> dynamiques avec<br>l'AGL WebDev. Ajax, <b>Web</b> 2.0 HTML5<br><cite>www.pcsoft.fr/<b>web</b>dev</cite><br></li><li><h3><a id="an4" href="/aclk?sa=l&amp;ai=C2osfF88EUODSJYG5hAfU74CXBqGK2q0CieT86ySJ0v3MDRAEKARQws3l9QNg-_n8gogKoAGXhcL_A8gBAaoEG0_QBMNeCtvjkArGPVbBe6GoJu-Ko8YI6LPItA&amp;num=4&amp;sig=AOD64_2XdhVq-e1CRrsh3fcbtMXyESocqA&amp;adurl=http://info.iopus.com/go/web-scraping-d.aspx"><b>Web</b> Scraping Software</a></h3>Automate your data extraction with<br>iMacros - 500000 users - Free Trial<br><cite>www.iopus.com/iMacros/<b>Web</b>-Scraping</cite><br></li></ol></td></tr></table></div></td></tr></table><script src="/xjs/_/js/hp/hp,sb_he,pcc/rt=j/ver=vL-a9r7GnxE.en_US./d=1/rs=AItRSTNHScwFhry9IPB1sNk8iCyzT5fnVQ"></script><script type="text/javascript">google.ac&&google.ac.c({"agen":false,"cgen":true,"client":"serp","dh":true,"ds":"","fl":true,"host":"google.fr","jsonp":true,"lm":true,"msgs":{"lcky":"J\u0026#39;ai de la chance","lml":"En savoir plus","psrc":"Cette suggestion a bien été supprimée de votre \u003Ca href=\"/history\"\u003Ehistorique Web\u003C/a\u003E.","psrl":"Supprimer","srch":"Recherche Google"},"ovr":{"lm":1,"ms":1},"pq":"programmation systeme liens web parse","scd":10,"sce":5,"stok":"UQlvRPsehTaI_lSJeQfC-BXqOoU"})</script></body></html>
    
    0
    voici le code affiché avant l'erreur de la boucle que j'ai stocké dans un fichier pour le test.
    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
    <cite>www.developpez.net/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:V-ggWIQHXvoJ:http://www.developpez.net/%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:www.developpez.net/+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CBQQHzAA">Pages similaires</a></span></div></div></li><li class="g"><blockquote style="margin-bottom:0"><h3 class="r"><a href="/url?q=http://www.developpez.net/forums/d14974/general-developpement/programmation-systeme/linux/parser-chaine-shell-script-resolu/&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&am
     
     
    1000
     
     
    p;ved=0CBUQFjAB&amp;usg=AFQjCNEhJ-JZKUUqhunMo89SjL4ifd0l_g"><b>Parser</b> une chaine en shell script [Résolu] - Forum des <b>...</b></a></h3><div class="s">Bonjour à tous, J'aimerai <b>parser</b> l'adresse foo.utbm.fr et simplement récupérer <b>...</b> <br>  Dév. <b>Web</b> Développement <b>Web</b> et Webmarketing <b>...</b> Linux Forum d'entraide sur la <br>  <b>programmation</b> Linux : shell, <b>système</b>, . <b>....</b> Merci pour le <b>lien</b>.<br><div><cite>www.developpez.net/.../<b>programmation</b>-<b>systeme</b>/.../<b>parser</b>-chaine-shell-script- resolu/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:vNtzUC_l6CMJ:http://www.developpez.net/forums/d14974/general-developpement/programmation-systeme/linux/parser-chaine-shell-script-resolu/%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></blockquote></li><li class="g"><h3 class="r"><a href="/url?q=http://www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CB0QFjAC&amp;usg=AFQjCNGk7xR7iaPim4AOrmSYXCrz_SW8lw">TP de Compilation: JFlex &amp; CUP</a></h3><div class="s"><b>Parser</b> avec CUP <b>...</b> Installer JFlex pour un <b>système</b> Unix. 1 télécharger jflex-1.x.x.<br>  tar.gz à l'adresse <b>http</b>://jflex.de/. 2 <b>...</b> dans votre répertoire bin ajouter un <b>lien</b> jflex: <br>  <b>....</b> Écrire un <b>programme</b> jflex permettant d'évaluer des expressions post fixées.<br><div><cite>www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:7es-7dIBTUUJ:http://www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:www.irccyn.fr/franck/other-files/jflex-cup-slides.pdf+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CB8QHzAC">Pages similaires</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://fr.wikibooks.org/wiki/Programmation_PHP/Premier_programme&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CCAQFjAD&amp;usg=AFQjCNFaz6YcVEfibZj1ikdwtR1do08-jQ"><b>Programmation</b> PHP/Premier <b>programme</b> - Wikibooks</a></h3><div class="s"><b>Programmation</b> PHP/Premier <b>programme</b> <b>...</b> du code; 3 <b>Parse</b> error; 4 <br>  Standardisation des commentaires; 5 <b>Liens</b>. [modifier] Hello World. Écrivons <br>  notre premier <b>programme</b> PHP. <b>...</b> &lt;?php // <b>Parse</b> error assurée echo 'J'irais bien <br>  boire un coup.'; ?&gt; <b>...</b> <b>Programmation Web</b>/Programmer en deux minutes - <br>  deuxième <b>programme</b> <b>...</b><br><div><cite>fr.wikibooks.org/wiki/<b>Programmation</b>_PHP/Premier_<b>programme</b></cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:JAfjb9gbHSIJ:http://fr.wikibooks.org/wiki/Programmation_PHP/Premier_programme%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:fr.wikibooks.org/wiki/Programmation_PHP/Premier_programme+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CCIQHzAD">Pages similaires</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://www.lesite.com/tutoriel-3-400701-l-axe-parser.html&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CCMQFjAE&amp;usg=AFQjCNGBTdIpDvz5lwuqSGdH3lyK23WXAg">L'Axe <b>Parser</b> - Calculatrices</a></h3><div class="f"><div class="star" style="float:left;margin-top:3px"><div style="width:45px">.</div></div>&nbsp;Note*: 3.7/4&nbsp;-&nbsp;56*votes</div><div class="s">30 avr. 2012 <b>...</b> Site <b>Web</b> (206 Cours) <b>...</b> <b>Systèmes</b> d'exploitation (81 Cours) <b>...</b> <b>Programmation</b> (<br>  265 Cours) <b>...</b> Réalisez votre site <b>web</b> avec HTML5 et CSS3 <b>....</b> Voici quelques <br>  <b>liens</b> pour faire p
     
     
    1000
     
     
    artager vos projets ou poser des questions : <b>...</b><br><div><cite>www.lesite.com/tutoriel-3-400701-l-axe-<b>parser</b>.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:FJ3-AjSrEKYJ:http://www.lesite.com/tutoriel-3-400701-l-axe-parser.html%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://fr.wikipedia.org/wiki/Analyse_syntaxique&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CC0QFjAF&amp;usg=AFQjCNFjQXXIq5KF6KQIH1p3GqCP9-dlbA">Analyse syntaxique - Wikipédia</a></h3><div class="s">Un analyseur syntaxique (<b>parser</b>, en anglais) est un <b>programme</b> informatique qui <br>  réalise cette <b>...</b> 1 <b>Liens</b> avec les langages formels; 2 Analyse non contextuelle <b>...</b><br><div><cite>fr.wikipedia.org/wiki/Analyse_syntaxique</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:a7mVv713X-4J:http://fr.wikipedia.org/wiki/Analyse_syntaxique%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:fr.wikipedia.org/wiki/Analyse_syntaxique+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CC8QHzAF">Pages similaires</a></span></div></div></li><li class="g"><blockquote style="margin-bottom:0"><h3 class="r"><a href="/url?q=http://fr.wikipedia.org/wiki/Compilateur&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDAQFjAG&amp;usg=AFQjCNH3bx98s2HQ91nkeM_s9nVxIuCRBA">Compilateur - Wikipédia</a></h3><div class="s">Un compilateur est un <b>programme</b> informatique qui transforme un code source <br>  écrit <b>...</b> (<b>parsing</b>), analyse sémantique, génération de code et optimisation de <br>  code. <b>...</b> le processeur ou le <b>système</b> d'exploitation est différent de celui du <br>  compilateur, on <b>...</b> La compilation est souvent suivie d'une étape d'édition des <br>  <b>liens</b>, pour <b>...</b><br><div><cite>fr.wikipedia.org/wiki/Compilateur</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:Fw5lBLTnQ0QJ:http://fr.wikipedia.org/wiki/Compilateur%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=related:fr.wikipedia.org/wiki/Compilateur+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDIQHzAG">Pages similaires</a></span></div></div></blockquote></li><li class="g"><h3 class="r"><a href="/url?q=http://www.epsp.cd/parse.html&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDQQFjAH&amp;usg=AFQjCNEOdl5twJiLG_jO8j9AV6Em-lGsYA"><b>PARSE</b> - EPSP</a></h3><div class="s">Les objectifs spécifiques du <b>PARSE</b> sont les suivants : <b>...</b> des donateurs et la <br>  transition future vers un <b>programme</b> couvrant l'ensemble du <b>système</b> éducatif.<br><div><cite>www.epsp.cd/<b>parse</b>.html</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:JcI94APK-MEJ:http://www.epsp.cd/parse.html%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://perl.developpez.com/cours/&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDYQFjAI&amp;usg=AFQjCNGfDFTBDzXKGn9Wimz_KKdSwlAWjQ">Les meilleurs tutoriels et articles Perl</a></h3><div class="s">Dév. <b>Web</b> Développement <b>Web</b> et Webmarketing <b>...</b> <b>Systèmes</b> Logiciels et <br>  matériels <b>systèmes</b> <b>...</b> Guide de <b>programmation</b> Perl ou comment débuter en Perl <br>  <b>...</b> que de nombreux <b>liens</b> pour vous permettre de vous exercer et d'aller plus loin <br>  !<br><div><cite>perl.developpez.com/cours/</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:v6cmBli-DZgJ:http://perl.developpez.com/cours/%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a> - <a href="/search?hl=fr&amp;ie=UTF-8&amp;q=r
     
     
    1000
     
     
    elated:perl.developpez.com/cours/+programmation+systeme+liens+web+parse&amp;tbo=1&amp;sa=X&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDgQHzAI">Pages similaires</a></span></div></div></li><li class="g"><h3 class="r"><a href="/url?q=http://www.liafa.jussieu.fr/~hf/verif/ens/an09-10/internet/TP3.pdf&amp;sa=U&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;ved=0CDkQFjAJ&amp;usg=AFQjCNF2qMdWge1W7DlYqTaBLmZjO92djQ">TP3 URLConnection</a></h3><div class="s">A titre indicatif le <b>programme</b> suivant affiche la première ligne de la réponse du <br>  serveur <b>HTTP</b> et tous les <b>liens</b> présents dans l'URL <b>...</b> import javax.swing.text.html<br>  .<b>parser</b>.Element; <b>...</b> <b>System</b>.out.println(&quot;HTTP &quot;+code+ &quot; &quot;+response); <b>...</b><br><div><cite>www.liafa.jussieu.fr/~hf/verif/ens/an09-10/internet/TP3.pdf</cite><span class="flc"> - <a href="//webcache.googleusercontent.com/search?q=cache:rujmMZsWR5gJ:http://www.liafa.jussieu.fr/~hf/verif/ens/an09-10/internet/TP3.pdf%2Bprogrammation+systeme+liens+web+parse&amp;hl=fr&amp;ct=clnk">En cache</a></span></div></div></li></ol></div></div></div><div id="foot"><table align="center" border="0" cellpadding="0" cellspacing="0" id="nav"><tr valign="top"><td class="b" align="left"><span class="csb ch" style="background-position:-24px 0;width:28px"></span><b></b></td><td><span class="csb ch" style="background-position:-53px 0;width:20px"></span><b>1</b></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=10&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>2</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=20&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>3</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=30&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>4</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=40&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>5</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=50&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>6</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=60&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>7</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=70&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>8</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=80&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>9</a></td><td><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=90&amp;sa=N" class="fl"><span class="csb ch" style="background-position:-74px 0;width:20px"></span>10</a></td><td class="b" style="text-align:left"><a href="/search?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd&amp;ei=F88EUMbdJNGzhAfq4MXMBw&amp;start=10&amp;sa=N" style="text-align:left"><span class="csb ch" style="background-position:-96px 0;width:71px"></span><span style="display:block;margin-left:53px">Suivant</span></a></td></tr></table><p class="flc" id="bfl" style="margin:19px 0 0;t
     
     
    ddf
     
     
    ext-align:center"><a href="/support/websearch/bin/answer.py?answer=134479&amp;hl=fr">Aide sur la recherche</a> <a href="/quality_form?q=programmation+systeme+liens+web+parse&amp;hl=fr&amp;ie=UTF-8&amp;prmd=ivnsfd">Envoyez-nous vos commentaires</a></p><div class="flc" id="fll" style="margin:19px auto 19px auto;text-align:center"><a href="/">Accueil&nbsp;Google</a> <a href="/intl/fr/ads">Publicité</a> <a href="/intl/fr/policies/">Confidentialité et conditions d'utilisation</a> <a href="/intl/fr/about.html">À propos de Google</a></div></div></td><td valign="top"><div id="rhs_block" style="padding-top:5px;border-left:1px solid #c9d7f1"><table cellpadding="0" cellspacing="0" id="mbEnd" style="padding:0;white-space:nowrap"><tr><td class="std" id="rhsline" style="padding-left:8px"><h2 style="margin:0;padding:1px 0 4px;text-align:left">Annonces</h2><ol class="nobr" onmouseover="return true" style="margin-top:-11px"><li><h3><a id="an1" href="/aclk?sa=l&amp;ai=C-7hZF88EUODSJYG5hAfU74CXBreBiu4Cv-n0jRvHkdLZaxABKARQ_YbT1Pr_____AWD7-fyCiAqgAYWA1vwDyAEBqgQbT9BU5QEK3uOQCsY9VsF7oagm74qjxgjos8is&amp;num=1&amp;sig=AOD64_0CrUmCPP_bQrW--KliIapk5suVXQ&amp;adurl=http://www.google.fr/intl/fr/adwords/jumpstart/phone.html%23sourceid%3Dawo%26subid%3Dfr-fr-ha-sk%26medium%3Dcpc%26term%3D%252Bprogramme%2520%252Bliens">Acheter <b>Liens</b> Sponsorisés</a></h3>Trouvez des Nouveaux Clients avec<br>Un <b>Lien</b> Publicitaire sur Google<br><cite>www.google.fr/AdWords</cite><br></li><li><h3><a id="an2" href="/aclk?sa=l&amp;ai=C8fj6F88EUODSJYG5hAfU74CXBoP5lIoC4_7gvhyvze8lEAIoBFCw8Oek______8BYPv5_IKICqABxc3o_gPIAQGqBB1P0ATDXgrd45AKxj1WwXuhqCbviqPGCOizyDSWkw&amp;num=2&amp;sig=AOD64_3W09akN8k1QElD3_Hlqr2VTuWlMQ&amp;adurl=http://www.newprosoft.com"><b>Web</b> Scraping Software</a></h3>Extract specific data from<br>a <b>website</b> to your database<br><cite>www.newprosoft.com/</cite><br></li><li><h3><a id="an3" href="/aclk?sa=l&amp;ai=CTpZnF88EUODSJYG5hAfU74CXBuyxv68CtKTUpyKoprcsEAMoBFCxuoDL_v____8BYPv5_IKICqAB2cqR_wPIAQGpAtj1aHmAmLQ-qgQbT9A0mCAK3OOQCsY9VsF7oagm74qjxgjos8is&amp;num=3&amp;sig=AOD64_3wuhDd6qklTwuLVZ2nghNeOh4E3A&amp;adurl=http://www.pcsoft.fr/webdev/index.html%3Fp%3Dgoogle017Programmez_Internet">Professionnels du <b>WEB</b> :</a></h3>créez vos sites <b>Web</b> dynamiques avec<br>l'AGL WebDev. Ajax, <b>Web</b> 2.0 HTML5<br><cite>www.pcsoft.fr/<b>web</b>dev</cite><br></li><li><h3><a id="an4" href="/aclk?sa=l&amp;ai=C2osfF88EUODSJYG5hAfU74CXBqGK2q0CieT86ySJ0v3MDRAEKARQws3l9QNg-_n8gogKoAGXhcL_A8gBAaoEG0_QBMNeCtvjkArGPVbBe6GoJu-Ko8YI6LPItA&amp;num=4&amp;sig=AOD64_2XdhVq-e1CRrsh3fcbtMXyESocqA&amp;adurl=http://info.iopus.com/go/web-scraping-d.aspx"><b>Web</b> Scraping Software</a></h3>Automate your data extraction with<br>iMacros - 500000 users - Free Trial<br><cite>www.iopus.com/iMacros/<b>Web</b>-Scraping</cite><br></li></ol></td></tr></table></div></td></tr></table><script src="/xjs/_/js/hp/hp,sb_he,pcc/rt=j/ver=vL-a9r7GnxE.en_US./d=1/rs=AItRSTNHScwFhry9IPB1sNk8iCyzT5fnVQ"></script><script type="text/javascript">google.ac&&google.ac.c({"agen":false,"cgen":true,"client":"serp","dh":true,"ds":"","fl":true,"host":"google.fr","jsonp":true,"lm":true,"msgs":{"lcky":"J\u0026#39;ai de la chance","lml":"En savoir plus","psrc":"Cette suggestion a bien été supprimée de votre \u003Ca href=\"/history\"\u003Ehistorique Web\u003C/a\u003E.","ps
    Merci d'avance

  19. #19
    Membre émérite Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Par défaut
    Ce que tu pourrais peut être faire c'est quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ]
       pos =  (int) strstr(buffer,"<cite>") ; // recherche de la position de la balise ouvrante
       cur = pos + 6 ; // positionnement après la balise. (je ne suis pas sur du 6)
     
       fin = (int) strstr(buffer, "</cite>") ; // recherche de la position de la balise fermante
     
       // Enregistrement du lien qui se trouve entre cur et fin.

  20. #20
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 502
    Billets dans le blog
    1
    Par défaut
    Il n'y a pas longtemps, j'ai mis un fichier de 4.232.506 octets en mémoire...
    Quel ours ! Mon PC ne dispose pas d'une telle RAM disponible quand il est éteint.

    je pense mal gérer quelque chose mais ne vois pas quoi
    J'ai l'impression que tu n'utilises pas correctement la fonction strstr(), tout comme MythOnirie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int pos;
    pos =  (int) strstr(buffer,"<cite>"); //recherche de la position
    Or, d'après la page de manuel, le prototype de la fonction est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *strstr (const char *meule_de_foin, const char *aiguille);
    Et la valeur renvoyée est :
    La fonction strstr() renvoie un pointeur sur le début de la sous-chaîne, ou NULL si celle-ci n'est pas trouvée.
    Vous castez tous les deux un retour de type char* en int (déjà, ça fait mal) pour vous en servir comme offset. Le retour est directement un pointeur vers la chaine recherchée.

    Du coup, pas besoin d'une faire l'horrible chose suivante !
    Voici un code exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int main(int argc, char *argv[])
    {
        const char * original = "Un <b>Lien</b> Publicitaire sur Google<br><cite>www.google.fr/AdWords</cite><br></li><li><h3><a id=\"an2\"";
     
        char * debut = strstr(original, "<cite>");
        char * fin = strstr(debut, "</cite>");
        debut = debut + 6;
     
        printf("Original : %s\n", original);
        printf("Debut : %s\n", debut);
        printf("Fin : %s\n", fin);
     
        return argc;
    }
    Une fois que tu connais la position en mémoire du début et celle de la fin, tu peux en déduire la taille de la chaine, allouer de la mémoire, copier la taille qu'il faut avec une fonction standard dédiée à la copie de chaine, etc.


    PS : à moins d'avoir une très bonne raison et de savoir exactement pourquoi, on ne caste pas une variable ou un retour de fonction !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] Recherche sous chaine dans une liste
    Par lbar012001 dans le forum Excel
    Réponses: 7
    Dernier message: 29/08/2012, 14h21
  2. Rechercher sous-chaine dans nom fichier
    Par leuke dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 17/06/2009, 17h11
  3. [PERL] Recherche sous chaine de caracteres
    Par KrSt94 dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2007, 16h25
  4. [Regex] Recherche sous chaine, debutant
    Par Tekone dans le forum Langage
    Réponses: 1
    Dernier message: 14/06/2006, 00h18
  5. Rechercher une sous chaine dans une chaine
    Par Oluha dans le forum ASP
    Réponses: 4
    Dernier message: 03/02/2005, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo