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 Occurance dans un fichier Txt [Débutant(e)]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Par défaut Recherche Occurance dans un fichier Txt
    Bonsoir à tous,

    Je débute (comme vous l'aurez remarqué) et je recherche le moyen de rechercher une chaine de char dans un fichier txt...

    j avais pensé à la fonction strstr() après avoir ouvert le fichier, faire un fgets ligne par ligne...

    Je n'ai pas encore développer le code mais je posterai assez souvent mes exploits

    Fin voilà ce serait gentil de m'aider pour me (re)mettre sur les rails

    ++

    By Spirit !!

  2. #2
    Membre chevronné Avatar de Pierre Maurette
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    283
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 283
    Par défaut
    Citation Envoyé par spirit daemon Voir le message
    Bonsoir à tous,

    Je débute (comme vous l'aurez remarqué) et je recherche le moyen de rechercher une chaine de char dans un fichier txt...
    Pas plutôt le moyen de trouver cette chaîne ?

    j avais pensé à la fonction strstr() après avoir ouvert le fichier, faire un fgets ligne par ligne...
    - D'abord, la solution la plus simple ne passe pas nécessairement par le C from scratch. Un grep fait ça très bien.
    - Il faut définir ce que vous appelez rechercher. Si le renseignement est binaire, présence ou absence, il y a peut-être plus rapide. Sinon, en particulier si vous voulez connaître la ligne de la première occurrence ou de toutes les occurences de la chaîne, votre approche semble correcte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    fopen()
    par fgets() ligne N dans buffer
        tant que fgets() ne renvoie pas NULL
            strstr() dans pointeur
            tant que pointeur pas NULL
                afficher N et éventuellement (pointeur - buffer)
                strstr(chaîne, buffer + pointeur + longueur de chaîne) dans pointeur
    fclose()

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Par défaut
    En fait c'est bien "trouver" et non rechercher. Je suis obligé de le coder en C (programme qui intervient dans le cadre du cours C).
    L'algo doit en fait trouver le nombre d occurrence de la chaine de caractère (ex "il") dans un fichier source et incrémenter un compteur à chaque fois que la chaine a été rencontrée.
    Je précise que je suis vraiment débutant

    fgets() me permet de récupérer ligne par ligne le contenu du fichier source.
    strstr() me retourne un pointeur sur la 1ere occurrence de la chaine
    mais comment passer à la 2eme, 3eme etc?

    THX

    ++

    By Spirit !!

  4. #4
    Membre confirmé
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Par défaut
    Ben une fois que strstr() t'a donné le pointeur, tu refais une recherche à partir de ce pointeur + taille de l'occurence recherchée.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3
    Par défaut
    Justement je pense que c'est ca que je n'ai pas bien saisi, comment implémenter le code afin qu'il recherche à partir du pointeur et non du début de fichier?

    ++

    By Spirit !!

  6. #6
    Membre confirmé
    Avatar de Nykoo
    Profil pro
    Inscrit en
    Février 2007
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 234
    Par défaut
    Citation Envoyé par spirit daemon Voir le message
    Justement je pense que c'est ca que je n'ai pas bien saisi, comment implémenter le code afin qu'il recherche à partir du pointeur et non du début de fichier?

    ++

    By Spirit !!
    Avec fseek()?

Discussions similaires

  1. Recherche graduée dans un fichier txt
    Par ludojojo dans le forum VBScript
    Réponses: 1
    Dernier message: 17/08/2009, 10h36
  2. Réponses: 1
    Dernier message: 01/03/2008, 12h01
  3. Recherche d'une phrase dans un fichier txt
    Par beegees dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 03/07/2007, 08h44
  4. Recherche dans un fichier .txt et remplacer
    Par FracMaster dans le forum Langage
    Réponses: 12
    Dernier message: 09/05/2007, 09h10

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