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 :

Faire un Dictionnaire en C. Comment faire?


Sujet :

C

  1. #21
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    OK. Et il est organisé comment ?
    Alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mot de la definition ( une tabulation comme separateur) puis la definition
    Cela donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    psp	La psp est une console cree par sony
    Pour l'instant une definition, je mettrait le reste ensuite car il y en a vraiment beaucoups .

  2. #22
    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
    Citation Envoyé par overdrive77310
    Alors:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mot de la definition ( une tabulation comme separateur) puis la definition
    Cela donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    psp	La psp est une console cree par sony
    OK. C'est clair.
    Pour l'instant une definition, je mettrait le reste ensuite car il y en a vraiment beaucoups .
    Beaucoup(!), c'est à dire 10, 100, 1000, 10000 ?
    Pas de Wi-Fi à la maison : CPL

  3. #23
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Je dirais aproximativement, une centaine tout au plus.
    ça pause un probleme?

  4. #24
    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
    Citation Envoyé par overdrive77310
    Je dirais aproximativement, une centaine tout au plus.
    C'est tout ? Il y a des contraintes de temps de réaction ?
    < 1 ms ?
    < 10 ms ?
    < 100 ms ?
    < 1 s ?
    Pas de Wi-Fi à la maison : CPL

  5. #25
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Non, pas de contraintes de temps, ce n'est pas important du tout, si ça prend un seconde, ce n'est pas un probleme, si ça prend une ms, c'est vrai que c'est mieux :p.
    Aprés si ça met un quart-d'heure, c'est vrai que la...

  6. #26
    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
    Citation Envoyé par overdrive77310
    Non, pas de contraintes de temps, ce n'est pas important du tout, si ça prend un seconde, ce n'est pas un probleme, si ça prend une ms, c'est vrai que c'est mieux :p.
    Aprés si ça met un quart-d'heure, c'est vrai que la...
    Alors il n'y a aucune difficulté particulière (lecture séquentielle basique).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ouverture du fichier
    faire
     lecture ligne à ligne
     séparation en mot clé / définition
     si le mot clé est égal au mot cherché
      afficher la définition
      arrêter la lecture
      noter 'trouvé'
    jusqu'à la fin de fichier
    fermeture du fichier
     
    si le mot n'a pas été trouvé
     afficher le message d'erreur.
    Pas de Wi-Fi à la maison : CPL

  7. #27
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ouverture du fichier
    faire
     lecture ligne à ligne
     séparation en mot clé / définition
     si le mot clé est égal au mot cherché
      afficher la définition
      arrêter la lecture
      noter 'trouvé'
    jusqu'à la fin de fichier
    fermeture du fichier
     
    si le mot n'a pas été trouvé
     afficher le message d'erreur.
    Overture du fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fopen("definitions.txt","r");
    Ne pas oublier de fermé grace a la fonction fclose:
    Lecture ligne par ligne du fichier.
    Aucunes idées.
    Separation entre le mot clef et la definition, je ne sais pas coment le mettre.

    Afficher la ligne de la definition: je ne sais pas, mais est-il possible de mettre un paramétre sur un printf?
    aprés le reste, je ne sais pas trop le faire.

  8. #28
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    Moi j'aurais commencé par utiliser une base de données, n'importe laquelle (ACCESS, MYSQL, etc...)
    J'aurais créé une table avec un champ texte pour chaque mot et un champ mémo pour la définition.
    C'est beaucoup plus sympa pour la saisie que de créer directement un fichier texte, spécialement si le séparateur d'enregistrements est un retour-chariot.
    Il y a toujours des risques d'introduire un séparateur (de champs ou de lignes) à l'intérieur d'un champ et alors plus rien ne marche.
    Après il y a deux possibilités:
    Primo, exporter la table vers un fichier texte et réinventer la roue (saisie du mot, recherche dans le fichier, etc...)
    Secundo, connecter un programme C à la base (voir les techniques et le code sur les forums spécialisés) et lancer des requêtes SQL. Comme ici il ne s'agit que de recherches de mots utiliser les mots comme clé primaire la table sera automatiquement indexée et la recherche se fera à la vitesse V.
    Enfin ça, c'est si vous voulez VRAIMENT programmer en C, de fait il vaut mieux créer un simple formulaire avec le SGBD choisi (ou même une simple requête paramétrée)
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  9. #29
    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
    Citation Envoyé par Zavonen
    Moi j'aurais commencé par utiliser une base de données, <...>
    ... ou l'art d'écraser les mouches au marteau pilon...
    Pas de Wi-Fi à la maison : CPL

  10. #30
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Zavonen
    Moi j'aurais commencé par utiliser une base de données, n'importe laquelle (ACCESS, MYSQL, etc...)
    J'aurais créé une table avec un champ texte pour chaque mot et un champ mémo pour la définition.
    [...]
    C'est vrai, pourquoi faire simple quand on peut faire compliquer?...
    Je crois que je vais partir comme pour le debut, je vais faire comme me dit Emmanuel Delahaye. Si quelqu'un peut me dire comment lire un fichier ligne par ligne ou me donner un lien vers un cours sur ça, merci.

  11. #31
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    fgets fera l'affaire

  12. #32
    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
    Citation Envoyé par overdrive77310
    Si quelqu'un peut me dire comment lire un fichier ligne par ligne ou me donner un lien vers un cours sur ça, merci.
    Bah, tu devrais mieux lire les réponses que l'on se casse le c*l à te donner...

    http://www.developpez.net/forums/sho...89&postcount=6
    Pas de Wi-Fi à la maison : CPL

  13. #33
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut
    .. ou l'art d'écraser les mouches au marteau pilon...
    Les écraser ou les enc... that's the question ...
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  14. #34
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    bah ça dépend de ses orientations .....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  15. #35
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    J'arrive a afficher la premiére ligne de mon fichier texte, ou alors la premiére plus la deuxieme, ou alors tout le fichier texte. J'ai trouvé qu'il faut que j'utilise strcmp pour faire la comparaison entre le mot de mon fichier texte et le mot entrer par l'utilisateur. Le probleme maintenant c'est qu'il faut que j'extrait le mot du fichier texte pour le comparais.
    J'ai pensé a la fonction fgets qui lirait tout jusqu'au separateur mais pour lire jusqu'au separateur, je ne sais pas comment faire.

  16. #36
    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
    Citation Envoyé par overdrive77310
    J'ai trouvé qu'il faut que j'utilise strcmp pour faire la comparaison entre le mot de mon fichier texte et le mot entrer par l'utilisateur.
    Bien.
    Le probleme maintenant c'est qu'il faut que j'extrait le mot du fichier texte pour le comparais.
    J'ai pensé a la fonction fgets qui lirait tout jusqu'au separateur mais pour lire jusqu'au separateur, je ne sais pas comment faire.
    OK. Ca se passe en 2 temps :

    1 - On lit la ligne entière avec fgets()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       fgets(ligne, sizeof ligne, fp)
    2 - On sépare le mot clé de la définition avec strtok()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    motcle = strtok(ligne, "\t");
    def = strtok(NULL, "\t");
    Je te laisse trouver la bonne définition pour 'motcle' et 'def'. (et je rappelle que l'appel à fgets() se fait dans une boucle ...)
    Pas de Wi-Fi à la maison : CPL

  17. #37
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Bien.
    OK. Ca se passe en 2 temps :

    1 - On lit la ligne entière avec fgets()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       fgets(ligne, sizeof ligne, fp)
    2 - On sépare le mot clé de la définition avec strtok()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    motcle = strtok(ligne, "\t");
    def = strtok(NULL, "\t");
    Je te laisse trouver la bonne définition pour 'motcle' et 'def'. (et je rappelle que l'appel à fgets() se fait dans une boucle ...)
    Ligne = mot ( mot utilisé par l'utilisateur).
    motcle= le mot se trouvant avant la tabulation dans le fichier texte.
    def= definitions ( le fopen)?
    Je vais essayé, je dis ce que ça donne sous peu.
    PS: jsuis deja dans une boucle ^^.

  18. #38
    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
    Citation Envoyé par overdrive77310
    Ligne = mot ( mot utilisé par l'utilisateur).
    Non. Ligne lue dans le fichier texte. Tu vois bien que le flux est fp et non stdin...
    motcle= le mot se trouvant avant la tabulation dans le fichier texte.
    oui
    def= definitions ( le fopen)?
    Bah non, un peu de bon sens... La phrase qui se trouve à la droite du \t.
    Pas de Wi-Fi à la maison : CPL

  19. #39
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 35
    Points : 2
    Points
    2
    Par défaut
    Jdis que des anneries lol.
    La boucle c'est bien while? ou void?
    Si tu peux me dire par quoi commence ma boucle, aprés j'essai de me debrouiller.

    edit:
    J'ai rien dis, je crois que c'est do.

  20. #40
    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
    Citation Envoyé par overdrive77310
    La boucle c'est bien while?
    Oui :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      char ligne[256]; /* voire plus si la définition est longue... */
      while (fgets(ligne, sizeof ligne, fp) != NULL)
      {
         /* traiter la ligne... */
     
         ??? motcle = strtok(???);
         ??? def = strtok(???);
      }
    etc.
    Pas de Wi-Fi à la maison : CPL

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [XL-2003] je voulais faire la somme des nombre comment faire ?
    Par aminepop dans le forum Excel
    Réponses: 13
    Dernier message: 03/08/2010, 21h54
  2. J'amerais faire des tests en local, comment faire ?
    Par beegees dans le forum Exchange Server
    Réponses: 0
    Dernier message: 11/01/2009, 18h35
  3. Réponses: 7
    Dernier message: 05/12/2008, 09h26
  4. Faire apparaitre/disparaitre lignes tableau -Comment Faire ?
    Par mathieu7497 dans le forum Général Conception Web
    Réponses: 9
    Dernier message: 31/03/2006, 23h39
  5. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41

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