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 :

Retrouver du texte dans un fichier .TXT


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Points : 58
    Points
    58
    Par défaut Retrouver du texte dans un fichier .TXT
    Voila je souhaite faire un programme en C qui me permette de retrouver une information de type Char rentrée manuellement.

    Je souhaite aller lire ds un fichier .txt, puis scruter ts les elements et me renvoyer un OK qd celui ci est trouvé et NOK ds l'autre cas.

    Pour l'instant je peux ouvrir et lire ds un fichier.

    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
    #include <stdio.h> 
     
    int main(void) 
    { 
      FILE *file; 
      char szBuffer; 
     
      if((file = fopen("fichier.txt", "r")) != NULL) 
      { 
     
        while (!feof(file)) 
        { 
          fread(&szBuffer, 1, 1, file); 
          if(szBuffer == '\0') 
             printf("\n"); 
          printf("%c", szBuffer); 
        } 
      } 
      fclose(file); 
    //  return TRUE;
    }
    Voila voila....

    Je continue a chercher mes je ss fraind de petites pistes.....

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 121
    Points
    28 121
    Par défaut
    Bonjour,

    Est-ce un problème d'algorithmique ou propre au langage C ?

    Si c'est un problème d'algo (ie : je ne sais pas comment trouver une chaine dans un texte), alors il faut faire déplacer ton message dans le forum Algorithmes

    En revanche si c'est un problème de C (eg : je ne sais pas comment chercher une chaine dans une autre), alors je pense qu'il serait bon de préciser quels points sont bloquants.

    Merci
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Retrouver du texte dans un fichier .TXT
    Citation Envoyé par beb30
    Pour l'instant je peux ouvrir et lire ds un fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        while (!feof(file)) 
        { 
          fread(&szBuffer, 1, 1, file);
    • feof() ne fait pas ce que tu crois. Il faut tester le retour de la fonction de lecture.
    • Pour lire un caractère, fgetc() suffit...

    Détails ici

    http://emmanuel-delahaye.developpez....s.htm#fichiers

    Pose des questions si tu ne copmrends pas.
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Points : 58
    Points
    58
    Par défaut
    J ai essayer ça et cela boucle à l'infini.....
    je ne comprend pas vraiment...

    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
    #include <stdio.h>
     
    int main (void)
    {
       FILE *fp = fopen ("fichier.txt","r");
     
    char filtre[50];
     
    printf("Quel fltre voulez vous appliquer?\n");
    gets(filtre);
    printf("Le filtre souhaite est: %s\n", filtre);
    printf("Test de validite\n\n");
     
     
       if (fp != NULL)
       {
         char ligne[50];
     
          /* definition d'un compteur de lignes et initialisation */
          int cpt = 0;
     
     
    while (fgets (ligne, sizeof ligne, fp) != NULL)     /* lecture des lignes */
    {
          while (ligne != filtre)   /*Condition pour arretter la boucle: retrouver le filtre dans le .txt*/
          {
    			cpt++;		    /* Mise a jour du compteur */
     
             printf ("%d\n", cpt);  /* Affichage des lignes */
          }
    		printf ("ok");
     
          /* On peut ajouter ici la detection de la cause
           * de l'erreur decrite ci-dessus
           */
    }
     fclose (fp);
     
       }
       else
       {
          printf ("Erreur d'ouverture du fichier\n");
       }
     
       return 0;
    }

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Depuis quand est-ce qu'on fait une comparaison de chaînes comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     while (ligne != filtre)   /*Condition pour arretter la boucle: retrouver le filtre dans le .txt*/
    Pour faire une comparaison de chaînes, on utilise strcmp

    Jc

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Points : 58
    Points
    58
    Par défaut
    déja ca tourne mieux... je l avais oublier ce petit strcmp

    mais il n arrive tjrs pas a retrouver ma chaine de caractere qui est bien pourtant présente ds mon fichier texte!!!

    je continue a chercher....

  7. #7
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par beb30
    déja ca tourne mieux... je l avais oublier ce petit strcmp

    mais il n arrive tjrs pas a retrouver ma chaine de caractere qui est bien pourtant présente ds mon fichier texte!!!

    je continue a chercher....
    Déjà, enlève le gets pour la saisie du filtre et mets fgets (en faisant attention d'enlever le '\n' à la fin de la chaîne de caractères saisie)

    Ensuite, enlève le while et utilise un if...

    Et finalement, utilise strstr pour savoir si tu as le filtre inclu dans la ligne ou strcmp pour savoir si la ligne est identique au filtre (à ce moment, faudrait laisser le '\n' du filtre)

    Jc

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    213
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 213
    Points : 58
    Points
    58
    Par défaut
    ok ca marche

    merci pour tes conseils

    Beb

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/06/2015, 15h55
  2. Inserer une ligne texte dans un fichier *.txt
    Par jacquesis dans le forum Autres éditeurs
    Réponses: 0
    Dernier message: 21/12/2012, 11h56
  3. [XL-2007] recherche d'une ligne de texte dans un fichier txt
    Par cagelion dans le forum Excel
    Réponses: 5
    Dernier message: 25/09/2010, 19h42
  4. Insérer du texte dans un fichier .txt
    Par maroua_mm dans le forum Qt
    Réponses: 1
    Dernier message: 23/02/2010, 17h54
  5. Défilement d'un texte contenu dans un fichier .txt
    Par Gwegz dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/07/2007, 10h36

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