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 lignes répétés dans un fichier en C


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Par défaut Recherche de lignes répétés dans un fichier en C
    Programme qui affiche les occurrences et les lignes d'un fichier en C.

    Programme à réaliser :

    Partie 1:

    Le programme consiste à écrire un programme en C dont le but est : — si le nom d’un seul fichier figure sur la ligne de commande, d’afficher, pour chaque ligne de texte du fichier non vide possédant plusieurs occurrences dans le fichier, la suite strictement croissante des numéros de ligne auxquels elle se situe . L’affichage se fait sur deux colonnes. La première colonne est réservée à la suite des numéros de ligne, la deuxième, au contenu de la ligne répétée. Les numéros de ligne sont séparés par une virgule ;

    Le résultat doit être :

    $ ./programme fichier.txt

    14,89 - la grande ville ;
    21,55,101 - vouloir exister et vivre;
    23,31 - vivre seul dans le village ;

    Réalisation:

    J'utiliser des listes , tables de hachages ( en fichier .c et .h ) pour stocker et afficher les lignes lues dans le fichier texte .

    Problème:

    dans le main.c :

    Je n'arrive pas à lire ligne par ligne le fichier texte et comparer chaque ligne avec le reste des lignes du fichier, pour affiche les numéros de lignes et les lignes qui se répètent dans le fichier, comme ci dessus.

  2. #2
    Expert confirmé

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Bonjour,

    Je pense que la meilleure solution pour avoir une réponse est de poser des questions un peu plus précises. Quel code as-tu déjà écrit? Montre le?

    Quel est le vrai problème?

    - Lire ligne par ligne?
    - Découvrir les duplicats?

  3. #3
    Membre habitué
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Par défaut Mon souci est que je n'arrive à lire chaque ligne et voir s'il se répète ? à quelle numéro de ligne ?
    Oui, le problème est de lire ligne par ligne un fichier qui en paramètre de ligne de commande et si une ligne se répète l'afficher comme ça :

    $ ./programme fichier.txt // le fichier.txt est en paramètre de la ligne de commande sous linux

    14,89 - la grande ville ; // la ligne "la grande ville" se répète 2 fois, à la ligne 14 et 89 du fichier .
    21,55,101 - vouloir exister et vivre; // la ligne "vouloir exister et vivre" se répète 3 fois, à la ligne 21, 55 et 101 du fichier .
    23,31 - vivre seul dans le village ; // la ligne "vivre seul dans le village" se répète 2 fois, à la ligne 23 et 31 du fichier .

    En effet, j’utilise des fichiers liste.h, liste.c et tablehachage.c et tablehachage.h en plus du main.c.
    Mon souci est que je n'arrive à lire chaque ligne et voir s'il se répète ? à quelle numéro de ligne ?

  4. #4
    Expert confirmé

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par LogMath Voir le message
    Oui, le problème est de lire ligne par ligne un fichier qui en paramètre de ligne de commande et si une ligne se répète l'afficher comme ça :

    $ ./programme fichier.txt // le fichier.txt est en paramètre de la ligne de commande sous linux

    14,89 - la grande ville ; // la ligne "la grande ville" se répète 2 fois, à la ligne 14 et 89 du fichier .
    21,55,101 - vouloir exister et vivre; // la ligne "vouloir exister et vivre" se répète 3 fois, à la ligne 21, 55 et 101 du fichier .
    23,31 - vivre seul dans le village ; // la ligne "vivre seul dans le village" se répète 2 fois, à la ligne 23 et 31 du fichier .

    En effet, j’utilise des fichiers liste.h, liste.c et tablehachage.c et tablehachage.h en plus du main.c.
    Mon souci est que je n'arrive à lire chaque ligne et voir s'il se répète ? à quelle numéro de ligne ?
    Pas pour être embêtant mais tu n'as toujours pas montrer du code...

    Ton code doit en principe faire:

    - Lire ligne par ligne
    - Traitement de la ligne
    - Affichage du résultat

    Donc en gros, ton programme devrait avoir:

    1) Un main qui prend l'argument en ligne de commande et vérifie si le fichier existe
    2) Ouvre le fichier et passe le à une fonction gereFichier
    3) gereFichier lit le fichier ligne par ligne et balance tout ća à une fonction gereLigne
    4) gereLigne peut faire la vérification avec la bonne structure...

    Commence déjà par faire un programme qui lit ligne par ligne et affiche la ligne (numéro de la ligne + le contenu). Rien de plus rien de moins.

  5. #5
    Membre habitué
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Par défaut
    en effet voici, mes bouts de code pour l'instant. J'utilise 3 fichiers :
    le fichier liste :

  6. #6
    Expert confirmé

    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 : 44
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Alors de ce que je vois: tu as beaucoup de code déjà écrit mais rien dans le main. On dirait que tout ce code est ce que tu as eu et on te demande de faire le main, est-ce cela?

    Si c'est le cas, commence par faire ce que j'ai dit:

    1) Regarde les paramètres passés au main
    2) Tente d'ouvrir le fichier avec fopen
    3) Tente de lire le fichier avec fgets

    Déjà commence par cela ;-)
    Jc

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/04/2006, 16h05
  2. [C#][xml][regexp] Recherche d'une regexp dans un fichier xml
    Par LeJocker dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/10/2005, 12h29
  3. [D6] Recherche d'une valeur dans un fichier
    Par Lung dans le forum Langage
    Réponses: 2
    Dernier message: 06/09/2005, 08h26
  4. Réponses: 4
    Dernier message: 02/07/2004, 19h14
  5. Réponses: 6
    Dernier message: 04/03/2004, 09h35

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