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 :

Lecture d'un fichier et liste chainée


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Par défaut Lecture d'un fichier et liste chainée
    BOnjour à tous les developpeurs ici présents, j'ai un soucis;
    Bon je developpe une application en C;
    Je veux lire un fichier qui contien N lignes,
    je veux parcourir le fichier ligne par ligne et stocker chaque mot dans une liste chainé tout en stockant la position du mot et le numero de la ligne.
    merci*
    je compte sur vous enormement.

  2. #2
    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


    on veut bien t'aider, mais montre-nous ce que tu as fais..

    On ne fera pas a ta place. On est juste ici pour t;aider.

    Alors montre

  3. #3
    Membre éclairé Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Par défaut Re
    Oui merci,
    mais je me bloke des le depart
    je c pas comment parcourir un fichier ligne apr ligne et extraire chaque mot.
    merci si vous maidez car c urgent
    merci

  4. #4
    Membre confirmé Avatar de LeBelge63
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 73
    Par défaut
    Google est ton ami pour la départ.

  5. #5
    Membre éclairé Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Par défaut extraire les mots
    Bonsoir à tous,
    jai un fichier a le parcourir ligne par ligne, j'aime extraire les mots constituants chaque ligne tout en enregistrant leurs positions et le numero de la ligne.
    merci

  6. #6
    Membre confirmé Avatar de LeBelge63
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 73
    Par défaut
    Citation Envoyé par souviron34 Voir le message


    on veut bien t'aider, mais montre-nous ce que tu as fais..

    On ne fera pas a ta place. On est juste ici pour t;aider.

    Alors montre
    Tout est dans le message

  7. #7
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Pour lire un fichier ligne par ligne, tu peux utiliser fgets().

    Il faut avant tout definir ce que c' est qu' un mot:
    • des groupes de lettres separés par des espaces

    • des groupes de lettres separés par des espaces et les signes de ponctuation ...


    Apres ces definitions, le travail est à moitié fini. Il te faut donc suivre l' algorithme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while (!feof(fichier))
    {
    // lire la ligne avec fgets()
    //extraire les mots de la chaine en fonction de la definition d' un mot
    //stocker les mots dans un tableau ou une liste chainnée ou ... 
    }

  8. #8
    Membre éclairé Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Par défaut merci
    Mais par quelle instruction on definit les mots: jai le cas que les mots un ensemble de lettre separes par un espace.
    merc

  9. #9
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Pour lire un fichier ligne par ligne, tu peux utiliser fgets().

    Il faut avant tout definir ce que c' est qu' un mot:
    • des groupes de lettres separés par des espaces

    • des groupes de lettres separés par des espaces et les signes de ponctuation ...


    Apres ces definitions, le travail est à moitié fini. Il te faut donc suivre l' algorithme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while (!feof(fichier))
    {
    // lire la ligne avec fgets()
    //extraire les mots de la chaine en fonction de la definition d' un mot
    //stocker les mots dans un tableau ou une liste chainnée ou ... 
    }
    Mauvais exemple !
    Comment détecter une fin de fichier ?

  10. #10
    Membre éprouvé Avatar de yakamoneye
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 108
    Par défaut
    lis chaque ligne de ton fichier avec fgets et tant qu' elle ne retourne pas NULL continue...

    fgets te renvoie "un pointeur sur la zone memoire" contenant la ligne nouvellement lue.

    decoupe cette ligne en fonction d'un caractere de separation (espace par exemple ) tant que tu ne rencontre pas le caractere '\0'.

    A chaque debut de ligne et a chaque recnontre du caractere de separation il faut que tu te crées un nouvelle structure car tu viens de renconter un nouveau mot.

    Mais il existe une solution de simplicté ... c'est de mettre un mot par ligne ... du coup plus de decoupage de ligne !!!

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while (!feof(fichier))
    {
    // lire la ligne avec fgets()
    Merci de ne pas induire les débutants en erreurs. Garde tes fautes pour toi... (ou essaye de les corriger...)

    feof() ne fait pas ce que tu crois...

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

  12. #12
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Par défaut
    Citation Envoyé par darrylsite Voir le message
    Pour lire un fichier ligne par ligne, tu peux utiliser fgets().

    Il faut avant tout definir ce que c' est qu' un mot:
    • des groupes de lettres separés par des espaces

    • des groupes de lettres separés par des espaces et les signes de ponctuation ...


    Apres ces definitions, le travail est à moitié fini. Il te faut donc suivre l' algorithme suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while (!feof(fichier))
    {
    // lire la ligne avec fgets()
    //extraire les mots de la chaine en fonction de la definition d' un mot
    //stocker les mots dans un tableau ou une liste chainnée ou ... 
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while (fgets(chaine,taille,fichier)>0)
    {
    //extraire les mots de la chaine en fonction de la definition d' un mot
    //stocker les mots dans un tableau ou une liste chainnée ou ... 
    }

  13. #13
    Membre éclairé Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Par défaut test
    Merci à tous les developpeurs qui m'ont aidé .
    Donc voilà ce que j'ai réalisé comme travail: le but est d'extraire les mots des differentes lignes d'un fichier texte, mais le probleme c'est que le programme n'affiche que les mots de la derniere ligne.
    J'ai refléchi trop sur ce point surtout sur la foonction d'extraction des mots mais j'ai pas réussi à localiser le probleme.
    Voila mon bout de code espérant que vous allez me trouvez une soultion :


    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
    #include <stdio.h>
    #include <stdlib.h>
    #include<string.h>
    #define TAILLEMAX 1000   //tableau de taille 1000
     
    int main(int argc, char *argv[])
    {
        FILE* fichier =NULL;
        char chaine [TAILLEMAX ]=" "; // chaine vide de taille TAILLEMAX 
        fichier =fopen("test.txt","r");
        if (fichier !=NULL)
         {
            while(fgets(chaine,  TAILLEMAX , fichier)!=NULL;
          }  //on lit maximum TAILLEMAX  caractere du fichier , on stoke le    tout dans "chaine" 
     
     
      printf("%s", chaine); //on affiche la chaine
    }
    fclose (fichier);
    return0;
    }
     
    void Affiche_mot (char* s)
    {
      if(s!=NULL)
        {
           int length=strlen(s);
           int i =0;
           while(i<length)
                {
                   if(s[i]!= ' ' &&s[i]!='\n')
                  {
                     printf("%c", s[i]);
                   ]
                  else
                   printf("\n");
                   i++;
             }
    }
    }
    MErci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Stocker dans fichier des listes chainées
    Par sisiniya dans le forum C
    Réponses: 7
    Dernier message: 26/03/2010, 21h10
  2. Réponses: 1
    Dernier message: 16/03/2010, 09h58
  3. fichier plus liste chainé
    Par Warfdog dans le forum Débuter
    Réponses: 2
    Dernier message: 18/11/2009, 15h25
  4. fichier et liste chainée
    Par seifdev dans le forum C
    Réponses: 4
    Dernier message: 23/04/2007, 02h08
  5. Réponses: 3
    Dernier message: 30/03/2007, 18h03

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