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 :

Tri et comparaison de mots dans un fichier texte


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Tri et comparaison de mots dans un fichier texte
    Bonjour à tous.
    Je suis actuellement en train d'apprendre le C comme premier langage de programmation et je lutte sur quelques points
    J'aimerai créer un programme de traitement de texte.
    Il faudrait que le programme analyse et tri 1 seul fichier texte du style dictionnaire.
    Le fichier texte contient 1 mot par ligne, et certains mots sont en double ou en triple voir + et placés n'importe ou dans le fichier.
    Il faudrait que le programme me génère un nouveau fichier texte avec les mots rangés suivant leur ordre lexicographique et que chaque mot soit unique.
    J'ai entendu dire que pour cela je devais utiliser les listes chainées que je maitrise asser mal pour l'instant mais suis-je obligé d'utiliser cette méthode ? car chaque mot devrait etre comparé avec tous les mots le suivant et le précédent.
    Alors je pensais que le programme pourrait dans un premier temps ranger chaque mot suivant leur orthographe en créant une fonction de tri puis comparer chaque mot avec le mot qui le suit.
    Si le mot qui le suit est le même, ne pas le copier, sinon le copier.

    Quelle méthode me conseillez vous ?
    Merci d'avance pour vos réponses.

    [F]ab

  2. #2
    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
    Alors je pensais que le programme pourrait dans un premier temps ranger chaque mot suivant leur orthographe en créant une fonction de tri puis comparer chaque mot avec le mot qui le suit.
    Le problème réside dans le fait que tu ne sais pas forcément combien de mots sont contenus dans ton fichier... Si tu ne veux pas le faire avec des listes chaînées. Tu utiliseras un peu plus de mémoire qu'une version liste chaînée mais ce n'est pas grave. En faisant attention, cette différence peut devenir négligeable (en utilisant un peu de temps CPU de plus)

    Il suffit de d'abord savoir combien de mots sont dans le fichier et alloué un tableau assez grand...

  3. #3
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Si c'est un programme a but pédagogique, il vaut mieux utiliser les listes chaînées, tu comprendras mieux ce que tu feras, sinon, utilise la méthode de fearyourself et trie ton tableau avec le quicksort du C et une fonction de comparaison de chaînes.
    Le nombre de lignes dans ton fichier est-il important ?
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Déja merci à vous pour vos réponses c'est un peu plus clair pour moi maintenant
    Oui Trap D on peut dire que c'est dans un but pédagogique.
    J'ai éssayé d'utiliser les listes chainées car je pense aussi que ça serait la solution idéale mais cela reste encore trop confus pour moi malgrès le grand nombre d'informations que j'ai pu trouver à ce sujet.
    J'aimerai déja pouvoir créer un programme qui puisse éffectuer les taches demandées... mais c'est vrai qu'au niveau de l'optimisation si je n'utilise pas les listes chainées je vais devoir déclarer de très grands tableaux (la taille du fichier texte à traiter peut etre de 100Ko comme de 5Mo)

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    940
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 940
    Points : 1 817
    Points
    1 817
    Par défaut
    Si les listes chaînées vous posent problème, c'est une très bonne raison pour les utiliser.

    Une hashmap utilisée en conjonction avec des listes chaînées pourrait permettre une exécution plus rapide, mais c'est compliqué.

    Qu'est-ce qui vous pose problème exactement avec les listes chaînées? Le concept? L'un des algorithmes?

Discussions similaires

  1. supprimer un mot dans un fichier texte
    Par coincoin22 dans le forum Linux
    Réponses: 10
    Dernier message: 14/08/2007, 15h28
  2. Trouver un mot dans un fichier texte
    Par spl0tch dans le forum Langage
    Réponses: 12
    Dernier message: 16/04/2007, 21h14
  3. Ecrire un mot dans un fichier texte existant
    Par Mickey.jet dans le forum Delphi
    Réponses: 10
    Dernier message: 26/02/2007, 23h23
  4. Réponses: 10
    Dernier message: 29/04/2006, 10h40
  5. Trouver un mot dans un fichier texte
    Par godik dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 10/03/2006, 14h31

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