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 de mot dans un fichier


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Recherche de mot dans un fichier
    Le titre dit donc tout. J'aimerais savoir comment rechercher un mot dans un fichier (genre dictionnaire).
    Merci d'avance.

  2. #2
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    la methode la plus simple :

    un algo recursif qui parse la zone de recherche à la recherche du nième char du mot desiré.

    Pour la première iteration , tu recherches le premier char dans tout le fichier.

    Pour la 2eme iterations tu recherche le 2eme char sur l emplacement qui suit le 1.

    etc...
    etc..
    et quand tu as trouver le dernier char tu mot ou EOF tu qui la fonction...

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Avec des char*, excuses moi, ZaaN, mais c'est pour le moins... ...

    Si tu continues dans cette voie, bientot, tu va conseiller d'utiliser FILE* fichier=fopen("fichier.txt","r") ...

    Le plus facile, selon moi, si ton fichier n'est pas indexé, c'est tout simplement d'effectuer une boucle sous la forme de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    std::string lu="";
    std::ifstream fichier(nom_fichier.c_str());
    while ( ! fichier.eof() && lu!=chaine_cherchee)
    {
        fichier>> lu;
        //éventuellement, si tu dois tester une chaine parmis d'autres, n'oublie pas
        // de lire les autres ;)
        //ca peut tres bien prendre la forme de fichier>>ch1>>ch2>>ch3... ;) 
    }
    en considérant nom_fichier et chaine_cherchee comme des variable de type std::string (la premiere contenant le nomd du fichier à parcourrir et la deuxième... la chaine recherchée )

    NOTA: les classes *fstream font partie de l'espace de nommage std et nécessitent l'inclusion du fichier... <fstream>

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ( ! fichier.eof() ...)
    Tester une lecture sur eof() c'est mal, voir la FAQ pour plus de détails.

  5. #5
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    et commande systemes du genre :
    tr -d -c "mot" < wc -c pour verifier ^^

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Citation Envoyé par lun4t1k
    et commande systemes du genre :
    tr -d -c "mot" < wc -c pour verifier ^^
    Le problème des commandes système, c'est que ce n'est absolument pas portable...

  7. #7
    Membre actif Avatar de lun4t1k
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 276
    Points : 274
    Points
    274
    Par défaut
    +1
    mais ca fonctionne...

Discussions similaires

  1. Rechercher un mot dans un fichier texte
    Par elscorpio dans le forum VB.NET
    Réponses: 3
    Dernier message: 02/06/2014, 17h04
  2. Réponses: 2
    Dernier message: 29/07/2010, 21h58
  3. [Batch] rechercher un mot dans un fichier
    Par apetroff dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 11/12/2009, 15h18
  4. [batch] Comment rechercher deux mots dans un fichier .txt ?
    Par koKoTis dans le forum FAQs Windows
    Réponses: 0
    Dernier message: 10/02/2009, 17h54
  5. Module de recherche de mots dans plusieurs fichiers
    Par hat_et_m dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/09/2006, 20h09

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