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 :

lecteur fichier text


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    etudiant
    Inscrit en
    Juin 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Niger

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Juin 2013
    Messages : 2
    Par défaut lecteur fichier text
    salue a tous chers freres. je sollicite votre aide.
    je suis entraint d'ecrire un programe qui parcour un fichier text pour le lire mot par mot.Mais mon mon probleme est que je ne sait pas comment orienter les mot du fichier vers le periferique de son. mais pour l'instant jai ecrire deux programme.l'un parcour un fichier text, et pour chaque mot du fichier, creer un fichier portant pour nom le mot courant du fichier, dans le quelle on a un message. lautre par contre parcour le fichier text, et pour chaque mot du fichier, si le fichier correspondant a ce mot exit,affiche son contenue a l'ecran.
    la question qui se pose est de savoir comment modifier le deuxieme programme,pour que ce dernier oriente les fichier corespondant a chaque mots vers le peripherique son pour etre lue.
    MERCI a tous. et je tient a signaler que je suis nouveau et debutant en c.
    ce ci est le deuxieme code.
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
     
    #include<stdio.h>
    #include<string.h>
    #include<malloc.h>
    struct element
    {
           char mot[27];
           struct element *next;
    };
    typedef struct element element;
    typedef struct element *list;
    list hama;
    char chaine[1000],MOT[27],caractere;  int indice=0; int code,cpt=1,i=0; 
    // ajoud en que d'un element dans la liste hama
    list ajout_queu()
    {    
         element* e=(element*)malloc(sizeof(element));
         // si la variable MOT est pas vide, INSERER dans le champ
         strcpy(e->mot,MOT);
         e->next=NULL;
         if(hama==NULL)
         {
                    hama=e;
         }
         else
         {
             element *t=hama;
             while(t->next != NULL)
             t=t->next;
             t->next=e;
         }
     
    }
    // fonction qui permet de compter le nombre de mot d'une liste chaine.
    int nb()
    {
         element* t=hama; int i=0;
          while(t != NULL)
         {
                  t=t->next;
                  i++;
         }
         return(i-1);
    }
    //  lire le contenue des fichier de la liste hama
    void printf()
    {
          FILE *F; char chaine[100]; int i=0;
     
         element* t=hama;
         while(t!=NULL)
         {
                 printf("%s",t->mot);
                 F=fopen(t->mot,"r");
                  if(F==NULL)
         {
          printf("\n fichier incorrecte ");
          printf("\n");
          printf("\n");
          }
          else
          {
              printf("\n");
           printf("chaine lue dans le fichier %s  est :",t->mot);
          printf("\n");
          printf("\n");
          while(! feof(F))
          putchar(fgetc(F));
          fclose(F);
          printf("\n");
          printf("\n");
          }
     
                 t=t->next;
                 printf("\n");
     
         }
     
         printf("\n %d mots  ",nb());
    }
    // procedure qui met les mots du fichier dans la list hama
    void lecture_mot(char*chemin)
    {
           FILE*F;   char car,care; int indicateur=0;
         F=fopen(chemin,"r"); 
         if(F==NULL)
         {
          printf("\n fichier incorrecte ");
          printf("\n");
          printf("\n");
          }
          else
          {
     
         printf("les mots du fichier %s sont:\n",chemin);
         printf("\n");
         printf("\n");
         while(! feof(F))
         {
     
              caractere=fgetc(F);
              while(caractere=='/')
              { 
                    car=fgetc(F);
                    if(car=='/')
                    {
                    while(caractere!='\n')
                    caractere=fgetc(F);
                    caractere=fgetc(F);
                    }
              }
     
              while(caractere=='<')
              {
              while(caractere!='>')
              caractere=fgetc(F);
              caractere=fgetc(F);
              }
              caractere=caractere;
     
              // Si le caractere courant est un separateur de mot,ajouter \0 dans MOT
              if(caractere==' ' or caractere=='*' or caractere=='?' or caractere=='.'or caractere=='\n' or caractere==':' or caractere==';' or caractere==',' or caractere=='[' or caractere==']' or caractere=='(' or caractere==')' or caractere=='!')
              {   
     
     
                    // si le caractere courant est un separateur de mot.
                   if(indicateur==0)
                   {
                   MOT[indice]='\0';
                   ajout_queu();
                   indice=0;
                   indicateur=1;
                   }
     
     
              }     
              else
              // Sinon affecter le caractere courant dans MOT et incrementer l'indice de MOT.
              {    
     
                     MOT[indice]=caractere;
                     indice++;
                     indicateur=0;
              }  
         }
         }
    }
    main()
    {
          char fichier[21];   char car,h=' ';
          FILE*F1;
     
           printf("donner le nom du fichier a parcourire :");
                     scanf("%20s",fichier);
                     lecture_mot(fichier);
                     printf(); 
                     scanf("%c",&h);
                      scanf("%c",&h);
     
    }

  2. #2
    Membre Expert
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    872
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 872
    Par défaut
    Le "chers frères" est de trop, c'est pas une secte.

    J'ai absolument rien compris à ta demande. Tu veux lire des mots puis les "entendre" ? Pour ça il va falloir bien plus que ton simple code... Par exemple utiliser une lib pour émettre du son (fmod ou portaudio par exemple), sans parler de générer le son à partir d'un mot.

    Dans l'état actuel de ton code, je sais pas si il y a grand chose qui peut fonctionner.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2013
    Messages : 42
    Par défaut Salut
    Salut .

    1. Essaye de modulariser ton code , on y gagnera en lisibilité et en logique -

    2. Trouve des noms logiques a tes fonctions, Et table bien sur les arguments et les valeurs de retours .

    3. Revoi la notion des Structures de Donnés en C

    4. N utilise pas les variables globales ( bon c est pas le plus critique pour l apprentissage ) .

    5. N utilise pas les mots reservés ( comme printf ) .

    Quelque signature :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void lecture_mot (char* chemin,  struct element *)  
    int compteurMot(struct liste * ); //Pourquoi compter d ailleurs ?? 
    void append(struct element **lst, char* mot); // En lieu et place de que...()
    void jouerListe(struct element *) //Pour ecouter les mots.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Mai 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2013
    Messages : 42
    Par défaut exemple
    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
    42
    43
    44
    45
    46
    47
    48
     
    #include <stdio.h>
    #include <stdlib.h>
     
    struct element {
        int value; // der Wert des Elements
        struct element *next; // das nächste Element
    };
     
    void printliste(struct element *l) {
        struct element *liste;
        liste=l;
        printf ("%d\n", liste->value);
        while (liste->next != NULL) {
            liste=liste->next;
            printf ("%d\n", liste->value);
        }
    }
     
    void append(struct element **lst, int value)
    {
        struct element *neuesElement;
        struct element *lst_iter = *lst;
     
        neuesElement = (struct element*) malloc(sizeof(*neuesElement)); // erzeuge ein neues Element
        neuesElement->value = value;
        neuesElement->next = NULL; 
     
       if ( lst_iter != NULL ) { // sind Elemente vorhanden
           while (lst_iter->next != NULL ) // suche das letzte Element
               lst_iter=lst_iter->next;
            lst_iter->next=neuesElement; // Hänge das Element hinten an
        }
        else // wenn die liste leer ist, bin ich das erste Element
            *lst=neuesElement;
    }
     
    int main()
    {
        struct element *Liste;
        Liste = NULL; // init. die Liste mit NULL = leere liste
        append(&Liste, 1); // füge neues Element in die Liste ein
        append(&Liste, 3); // füge neues Element in die Liste ein
        append(&Liste, 2); // füge neues Element in die Liste ein
     
        printliste(Liste); // zeige liste an
        return EXIT_SUCCESS;
    }
    desolé les commentaires sont en allemand , mais les noms des fonctions et les variable en allemand , je penses que le code est assez claire et facile a comprendre . Sinon il y a le Debugger .

Discussions similaires

  1. Chaine de lecteur fichier texte
    Par undercrash dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 11h41
  2. Réponses: 1
    Dernier message: 12/02/2003, 09h36
  3. [VB6] Ecrire/Modifier/Effacer ds un fichier text-4 Chs/Lg
    Par Jonathan_Korvitch dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 24/12/2002, 18h54
  4. Importer des fichiers textes délimités
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 23/09/2002, 13h56
  5. Instruction pour créer un fichier text ???
    Par Soulsurfer dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h17

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