[C] problemes de lecture dans un fichier des noms de fichiers à ouvrir

problemes de lecture dans un fichier des noms de fichiers à ouvrir [C] - C - Programmation

Marsh Posté le 06-04-2004 à 17:08:56    

Je cherche à faire un programme au cours duquel je doit lire dans un fichier (plusieurs.txt) le nom d'autres fichier qu'il me faut ouvrir par la suite.
 
 
Mon but est de lancer plusieurs appels à mes fonctions mais avec des fichiers de donnés à analyser différents (et des combinaisons différentes).
Je souhaites pouvoir ainsi visualiser les étapes du traitement de mes données et aussi recupperrer l'etat de mon systeme a la fin de chacune des analyses.
Pour cela, je met dans un fichier .txt les noms des fichiers utiles aux diverses analyses.
celui-ci est de la forme suivante :
 tout d'abord le fichiers où seront mis les etats finaux,  
puis le nom de chaque simulation suivi chacune du fichier model.txt contennant toutes les caracteristiques au temps 0 (model.txt)puis le fichier resultat.out ou seront stockées au fur et a mesure les étapes de cettte analyse et le fichiers contenant l'evolution de diverses variables au cours du temps ( fichier variables.txt ) et ce pour chaque simulation les unes à la suite des autres.
 
exemple de contenu de ce fichier plusieurs.txt :
 
 

Code :
  1. resultatglobal.out
  2. #
  3. simulation1
  4. ############
  5. model1.txt
  6. resultat1.out
  7. variables.txt
  8. #
  9. simulation2
  10. ############
  11. model2.txt
  12. resultat2.out
  13. variables.txt

 
ce que je fais :  
dans mon main  j'appellle une fonction ( int lecturedesnomdesfichiers(const char* sourcesplusieurs, int nbalire, char *TABnomfich[10], int nbldejalues) ) pour recuppérer les noms de fichiers  et avec le resultat je lance les analyses.
pour le moment il n'arrive pas à ouvrir les fichiers....  
 
les appels dans le main sont de la forme :  

Code :
  1. nb_lignes_lues += lecturedesnomdesfichiers( sourcesplusieurs, nbalire, TABnom, nb_lignes_lues );
  2.     numsimulation = TABnom[0];
  3.     model = TABnom[1];
  4.     resultat = TABnom[2];
  5.     phietc = TABnom[3];
  6.     simulation( resultatglobal,model,resultat,phietc,nvariables,numsimulation );


 
quand a ma fonction de lecture dans le fichier...

Code :
  1. int lecturedesnomdesfichiers(const char* sourcesplusieurs, int nbalire, char *TABnomfich[10], int nbldejalues){
  2.   int nb_l_lu = 0, i, j;
  3.   char* TABlu[100];
  4.   for(i=0;i<100;i++){
  5.     TABlu[i] = (char *)malloc (100* sizeof(char *));
  6.   } 
  7.  
  8.   FILE *f = fopen( sourcesplusieurs, "r" );
  9.   if (f==NULL) {
  10.     printf("erreur ouverture du fichier contennant les noms des fichiers \n" );
  11.     return -1;
  12.   }
  13.  
  14.   for(i=0;i<nbldejalues+nbalire;i++){
  15.     if (i<nbldejalues){/* lignes deja lues et donc d'analyse deja faite */
  16.       if (fgets( TABlu[nb_l_lu], 100, f ) != NULL){ 
  17.         if(TABlu[nb_l_lu][0] == '#'){
  18.           i--; /* pour ne pas prendre en compte les lignes de commentaire */
  19.         }
  20.       }
  21.     }else if (fgets( TABlu[nb_l_lu], 100, f ) != NULL){ 
  22.       if(TABlu[nb_l_lu][0] == '#'){
  23.         i--;
  24.       /* c'est une ligne de commentaire donc on ne fait rien */ 
  25.       }else{
  26.         nb_l_lu ++;
  27.       }
  28.     }
  29.   }
  30.  
  31.   for(j=0;j<nbalire;j++){
  32.    for(i=0;i<50;i++){      // les caracteres d'une ligne  
  33.     if(TABlu[j][i] != '\t' && TABlu[j][i] != ' ' && TABlu[j][i] != '\n'){
  34.       TABnomfich[j][i] = TABlu[j][i];
  35.     }
  36.    }
  37.   }
  38.   fclose(f);
  39.   return nb_l_lu ;
  40. }


 
ensuiet dans les fonctions d'analyse je fais des fopen de la forme :  

Code :
  1. FILE *f = fopen( model, "r" );

[/code]

Reply

Marsh Posté le 06-04-2004 à 17:08:56   

Reply

Sujets relatifs:

Leave a Replay

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