Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de lecture dans un fichier.txt

Sujet résolu
    8 octobre 2007 à 14:45:45

    Bonjour à tous

    Je suis en train de developpez une ptite application qui à pour but de lire (ligne par ligne) dans un fichier.txt et de comparer la ligne lue à des données que l'utilisateur a rentré.

    exemple :
    L'utilisteur saisie : 1001
    Mon programme chercheras dans le fihcier.txt si les données rentrées correspondent à une ligne du fichier texte.

    Voici mon fichier txt:

    1001
    1002
    1003

    Voici le code que j'utilise:
    1. while (fgets(numPiece2,sizeof(numPiece2),file1))
    2. {
    3. j=strcmp(numPiece2,numPiece);
    4. if(j==0)
    5. {
    6. printf("ligne trouvé"
    7. }
    8. else
    9. ....


    La compilation reussie mais le probleme est le suivant:

    Si l'utilisateur rentre la valeur de la derniere ligne c a d 1003 le programme fonctionne bien mais lorsque il rentre la premiere ligne le programme ne trouve pas la correspondance dans le fichier.
    Si quelqu'un pourrait m'aider.

    Merci d'avance. :)
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2007 à 14:59:55

      Citation : makaviel

      Je suis en train de developpez une ptite application qui à pour but de lire (ligne par ligne) dans un fichier.txt et de comparer la ligne lue à des données que l'utilisateur a rentré.

      exemple :
      L'utilisteur saisie : 1001
      Mon programme chercheras dans le fihcier.txt si les données rentrées correspondent à une ligne du fichier texte.

      Voici mon fichier txt:

      1001
      1002
      1003

      Voici le code que j'utilise:

      1. while (fgets(numPiece2,sizeof(numPiece2),file1))
      2. {
      3. j=strcmp(numPiece2,numPiece);
      4. if(j==0)
      5. {
      6. printf("ligne trouvé"
      7. }
      8. else
      9. ....



      La compilation reussie mais le probleme est le suivant:

      Si l'utilisateur rentre la valeur de la derniere ligne c a d 1003 le programme fonctionne bien mais lorsque il rentre la premiere ligne le programme ne trouve pas la correspondance dans le fichier.
      Si quelqu'un pourrait m'aider.


      C'est bien d'utiliser fgets(). Il faut juste se souvenir que cette fonction prend aussi le \n, ce qui peut perturber la comparaison.

      Je suggère donc de faire un nettoyage correct (suppression du \n final), que ce soit dans la saisie ou dans la lecture (les deux doivent se faire avec fgets()).

      http://www.siteduzero.com/tuto-3-11181-1-realiser-des-saisies-securisees-grace-a-fgets.html
      • Partager sur Facebook
      • Partager sur Twitter
      Music only !
        8 octobre 2007 à 15:10:42

        Ca marche impec!!

        Je te remercie!! :D

        ps: prochaine je fouinerer mieux dans les tutos je pensé pas que sa pouvais y etre.

        Merci encore ^^
        • Partager sur Facebook
        • Partager sur Twitter
          8 octobre 2007 à 19:53:27

          N'oublis pas de mettre ton problème comme résolu svp...
          • Partager sur Facebook
          • Partager sur Twitter
            10 octobre 2007 à 10:44:08

            Bonjour c'est encore moi! :euh:

            Voila mon prgramme marché niquel. Je l'ai laissé de coté pendant 2 3 jours et lorsque que je l'ai relancé il ne marché pu. Je ne comprend pas j'ai bien suivi le tuto.

            Il me trouve bien l'occurence '\n'.

            Voici le code.

            1. while (fgets(numPiece2,sizeof(numPiece2),file1))
            2. {
            3. occu = strchr(numPiece2, '\n')/*Recherche de '\n' dans la ligne recuperé par fgets()*/
            4. if(occu)
            5. {
            6. printf("occurence trouvé");
            7. *occu = 0 ;             //Upadate le caractère '\n' par '0'
            8. }
            9. .......


            Le code marche encore une fois sur la derniere ligne. Donc je pence que ca vient encore '\n' mais je ne comprend pas pourquoi il me le remplace pas snif
            • Partager sur Facebook
            • Partager sur Twitter
              10 octobre 2007 à 11:49:50

              Citation : makaviel

              Le code marche encore une fois sur la derniere ligne. Donc je pence que ca vient encore '\n' mais je ne comprend pas pourquoi il me le remplace pas snif


              Ca dépend comment est défini numPiece2.
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                10 octobre 2007 à 11:57:53

                Voila j'ai resolu le probleme. En faite c'etait une erreur de compilation. Mon compilateur avait un probleme, ce qui fait que la compilation de mon programme ne se fesait pas correctement.

                Merci quand mm. :)
                • Partager sur Facebook
                • Partager sur Twitter

                Probleme de lecture dans un fichier.txt

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown