Extraction dans un fichier

Extraction dans un fichier - C - Programmation

Marsh Posté le 02-01-2006 à 17:54:32    

Bonsoir
 
J'aimerais extraire un code morse d'un fichier texte et laffecter a une variable pour cela j'utilise le code ci-dessus

Code :
  1. void TraduireEnTexte(char *Fsource)
  2. {
  3.     FILE *fTxt;
  4.     char c;
  5.     char ligne[100];
  6.     int j;
  7.     char *code;
  8.  
  9.     fTxt=fopen(Fsource,"r" );
  10.     if(fTxt==NULL) printf("Fichier existe pas\n" );
  11.     else
  12.     {
  13.           c=fscanf(fTxt,"%s$ \n",ligne);
  14.           while(c!=EOF)
  15.           {
  16.               /*j=strlen(ligne)+1;
  17.               code=(char*) malloc(sizeof(char)*j);
  18.               strcpy(code, ligne);
  19.      
  20.               /***Ajoute sur liste ****/
  21.              // Ajouter(car,code,&l);
  22.               /***************************/
  23.               printf("%s",ligne);
  24.            c=fscanf(fTxt,"%s$ \n",ligne);
  25.           }
  26.           fclose(fTxt);
  27.      }
  28. }


 
Ce que je veux plus precisement c'est de parxemple extraire du fichier ConvertMorse.txt qui contient ceci :

Citation :

-.-.$---$..-$-.-.$---$..-$
-.-.$.-$ * ...-$.-$
---$-.-$ * ---$---$


 
toutes les code morse:
ligne=-.-.
ligne=---
ligne=etc...
jusqu'a la fin du fichier
 
Ce que j'ai prodtui ne fonctionne pas et e n'arrive pas a extraire
Merci pour votre aide

Reply

Marsh Posté le 02-01-2006 à 17:54:32   

Reply

Marsh Posté le 02-01-2006 à 19:12:50    

rabzouze a écrit :

Bonsoir
 
J'aimerais extraire un code morse d'un fichier texte et laffecter a une variable pour cela j'utilise le code ci-dessus

Code :
  1. void TraduireEnTexte(char *Fsource)
  2. {
  3.     FILE *fTxt;
  4.     char c;
  5.     char ligne[100];
  6.     int j;
  7.     char *code;
  8.  
  9.     fTxt=fopen(Fsource,"r" );
  10.     if(fTxt==NULL) printf("Fichier existe pas\n" );
  11.     else
  12.     {
  13.           c=fscanf(fTxt,"%s$ \n",ligne);
  14.           while(c!=EOF)
  15.           {
  16.               /*j=strlen(ligne)+1;
  17.               code=(char*) malloc(sizeof(char)*j);
  18.               strcpy(code, ligne);
  19.      
  20.               /***Ajoute sur liste ****/
  21.              // Ajouter(car,code,&l);
  22.               /***************************/
  23.               printf("%s",ligne);
  24.            c=fscanf(fTxt,"%s$ \n",ligne);
  25.           }
  26.           fclose(fTxt);
  27.      }
  28. }


 
Ce que je veux plus precisement c'est de parxemple extraire du fichier ConvertMorse.txt qui contient ceci :

Citation :

-.-.$---$..-$-.-.$---$..-$
-.-.$.-$ * ...-$.-$
---$-.-$ * ---$---$


 
toutes les code morse:
ligne=-.-.
ligne=---
ligne=etc...
jusqu'a la fin du fichier
 
Ce que j'ai prodtui ne fonctionne pas et e n'arrive pas a extraire
Merci pour votre aide


 
Si tu fais un fscanf("%s$ \n" ) alors il faut que ton fichier contienne une chaîne suivie par un $ puis un espace puis un '\n'. Or, dans ton exemple, les lignes ne correspondent pas au schéma
 
Autre chose: inutile de faire deux fois "c=fscanf". Autant écrire directement "while ((c=fscanf(...)) != EOF)"

Reply

Marsh Posté le 02-01-2006 à 19:15:24    

En faite j'ai un probleme d'ecriture dans le fichier mnt

Reply

Marsh Posté le 02-01-2006 à 19:24:09    

voila le code
 
void TraduireEnTexte(Arbre a,char *Fsource,char *Fdest)
{
    FILE *fTxt;
    char c;
    char ligne[100];
    char morse[100];
     
    char lettre;
    char *code;
    int i;
 int j;
 
 FILE *FenTexte;
 /******************************/
 
 fTxt=fopen(Fsource,"r" );
 FenTexte=fopen(Fdest,"w" );
     
    if(fTxt==NULL) printf("Fichier existe pas\n" );
    else
    {
          c=fgets(ligne,100,fTxt);
          while(c!=NULL)
          {
              i=0;
              while (ligne[i]!='\0')
              {        
                    j=0;
                    while (ligne[i]!='$')
                    {      
                          morse[j]=ligne[i];    
                          printf("Boucle morse et ligne" );
                          j++;
                          i++;
                    }
                   i++;
                   
                   if (strcmp(morse," * " )==0)  fprintf(FenTexte," " );
                   else
                   {
                                      int k;
                       k=strlen(morse)+1;
                       code=(char*) malloc(sizeof(char)*k);
                       strcpy(code, morse);
                       printf("Insere file" );
                       lettre=ConvertirMorse(code, a);
                       printf("\n %c",lettre);
                       fprintf(FenTexte,"%c",lettre);
                   }                  
              }
              c=fgets(ligne,100,fTxt);
              fprintf(FenTexte,"\n" );
         }
     }
   fclose(fTxt);
   fclose(FenTexte);
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed