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 dans un fichier texte


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 17
    Par défaut Recherche dans un fichier texte
    Bonjour,

    j'ai un fichier texte qui se présente sous la forme :

    0001457895 30 30
    0001457999 40 62
    0001652344 68 74
    ....


    Le premier nombre a 10 chiffre correspond a un numéro d'action.
    Dans le programme que je suis en train de codé, je reçois un numéro d'action, par exemple 0001457999 (présent en ligne 2 du fichier texte).

    La fonction recherche que je souhaite implémenter doit en faite parcourir le fichier texte afin de savoir si le numéro de l'action est présent dans celui ci. Si oui, alors je voudrais enregistrer dans un tableau[3] les 3 nombres de la ligne.

    j'ouvre le fichier de cette manière :

    FILE *fichier
    fichier = fopen("texte.txt","r")

    Ensuite, je n'y arrive plus. J'ai essayé avec des strcmp, fgets, strstr mais rien n'y fait ca ne fait pas ce que je souhaite avoir (expliqué ci dessus)

    Si quelqu'un a une idée, en esperant avoir été clair, merci d'avance!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Par défaut
    Tu peux parcourir ton fichier ligne par ligne avec :
    getline
    Puis tu compares les 10 premiers caracteres avec strncmp
    Et si ca correspond tu lit la fin de la ligne.

  3. #3
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par MaxouHTR Voir le message
    Bonjour,

    j'ai un fichier texte qui se présente sous la forme :

    0001457895 30 30
    0001457999 40 62
    0001652344 68 74
    ....
    Le premier nombre a 10 chiffre correspond a un numéro d'action.
    Dans le programme que je suis en train de codé, je reçois un numéro d'action, par exemple 0001457999 (présent en ligne 2 du fichier texte).

    La fonction recherche que je souhaite implémenter doit en faite parcourir le fichier texte afin de savoir si le numéro de l'action est présent dans celui ci. Si oui, alors je voudrais enregistrer dans un tableau[3] les 3 nombres de la ligne.
    Salut! tu peux utiliser fscanf en insérant dans la fonction les espaces que t'as mis et qui sépare les 3 données d'une même ligne. En exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(fichier,"%d %d %d",&num_action,&nb2,&nb2);
    Ensuite tu compares la variable num_action avec le nouveau qui arrive pour voir si c'est déjà inscrit dans le fichier ou pas. C'est pas forcément un soluce pro mais juste une astuce à mon avis.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Par défaut
    C'est moins précis que strncmp car on aurait alors
    0001457999 == 1457999
    et ça ne traiterai que des nombres
    et ça serait plus long

  5. #5
    Membre confirmé Avatar de doderic
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 215
    Par défaut
    Citation Envoyé par pasdeface Voir le message
    C'est moins précis que strncmp car on aurait alors
    0001457999 == 1457999
    et ça ne traiterai que des nombres
    et ça serait plus long
    oui t'as raison c'est pour ça que je disais que ce n'est pas une solution pro mais ça fait quand même l'affaire. Quand tu dis que ça ne traiterais que ds nombres, d'accord; alors il n'aura qu'à remplacer les entiers par un tableau de char et convertir si besoin y est. Et puis je pense qu'il ne bosse qu'vec des nombres.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Une fois le fichier ouvert

    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
     
    int Tab[3] ;
    int nb1, nb2, nb3 ;
     
    Tant que fgets() non NULL
     
       Si longueur Ligne > 0 
           utiliser sscanf pour lire nb1, nb2, nb3
     
           Si nb1 egal valeur test
              Tab[0] = nb1 ;
              Tab[1] = nb2 ;
              Tab[2] = nb3 ;
           Fin si
       Fin si
     
    Fin tant que
    fermer fchier

Discussions similaires

  1. Recherche dans un fichier texte
    Par Yazoo70 dans le forum C++
    Réponses: 7
    Dernier message: 12/06/2007, 08h31
  2. recherche dans un fichier texte en perl(débutant)
    Par Shyboy dans le forum Langage
    Réponses: 3
    Dernier message: 04/07/2006, 23h53
  3. [VB]Recherche dans un fichier texte
    Par mirascheat dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/09/2005, 12h11
  4. Recherche dans un fichier texte volumineux.
    Par Actarus69 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 27/07/2005, 17h39
  5. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57

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