Bonjour à tous,

J'ai un problème et je ne suis pas très douée en C.

J'ai 2 fichiers d'entrée Excel contenant chacun 4000 lignes et colonnes de A à BG.

Je dois créer un fichier résultats dans le quel, je copie les colonnes de A à U de mon premier fichier Excel (Lib_Zone0.xls) et la colonne V de mon deuxième fichier Excel (Courants.xls). Ensuite je dois calculer l'intégrale des données de W à BG de mon premier fichier Excel en partant de la deuxième ligne (sachant la première représente mes pas de temps). Je mets le résultat à la suite de mon fichier résultats (colonne W deuxième ligne jusqu'à la fin)

J'ai pas encore fini tout le programme mais j'ai voulu tester si je pointe bien au bon endroit en essayant de copier l'intégrale de mon fichier, mais j'ai un soucis à partir des colonne V.

Si quelqu'un peu m'aider.

Merci d'avance.

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
 
 
#define sortie      "test.xls"
#define entree      "Lib_Zone0.xls"
#define entree2     "Courants.xls"
 
 
#define MAXLIGNE 300000
#define MAX      100		/* nombre max de pas de temps */
#define MAXX     10000		/* nombre max de pas de temps */
#define TCOL     (int)('V'-'A')	/* Titres associés */
 
 
/********************
Main 
***********************/
 
int main (void)
{
 
	FILE  *lib, *results, *simu;
	char buffer[10000], titre[TCOL+1][MAX], *b;
	double donnee[MAX], temps[MAX], Val[1][MAXX];
	int ntemps, ligne, i, j, flag;
 
	/* definition de fichiers d'entrée et de sortie*/
  lib=fopen(entree,"rt"); 
  results=fopen(sortie,"wt"); 
  if (!lib || !results)
    {  fprintf(stderr,"ERREUR de lecture des fichiers."); exit(1);  }
 
 
 
   /* ------------------------------
     lire les temps 
     ------------------------------ */
  fgets(buffer,10000,lib);
 
  printf("%s\n",buffer);
 
    /* aller a la colonne TCOL et lire les titres*/
  for (i=0, b=buffer; i<TCOL && b!=NULL; i++) 
    {
      for (j=0; b[j]!='\t'; j++) titre[i][j]=b[j];
      titre[i][j]='\0';
 
      b=strchr(b,'\t'); b++; 
    }
 
  /* lire les temps */
  for (ntemps=0; ntemps<MAX; ntemps++, b++)
    {
      if (sscanf(b,"%lf",&temps[ntemps])<1) break; /* dernier ? */
      if ((b=strchr(b,'\t'))==NULL) break; /* dernier ? */
    }
 
  for (j=0; j<TCOL; j++) 
    {
      printf("titre[%d]=%s\n",j,titre[j]);
      fprintf(results,"%s\t",titre[j]);// copie des titres dans le fichier results
    }
 
  fprintf(results,"SEU\t");// creation de la colonne SEU (titre)
 
  for (i=0; i<ntemps; i++) 
  {
 
      printf("t[%d]=%le\n",i,temps[i]);
 
      fprintf(results,"%le\t",temps[i]);  //copie des pas de temps des courants
  }
	  fprintf(results,"\n");
 
    /* ------------------------------
     analyser les simulations 
     ------------------------------ */
  //début rajout
	  for (ligne=0, flag=0; ligne<MAXLIGNE && (!flag); ligne++)
    {
      if (fgets(buffer,10000,lib)==NULL) 
	{ flag=1; break; }
 
	       // lire les donnees d'origine (colonnes A-R) 
      for (i=0, b=buffer; i<TCOL; i++)
	    {
	      if (sscanf(b,"%lf",&donnee[i])<1) 
		{  fprintf(stderr,"ERREUR de lecture de donnee.\n"); exit(1); }
 
	      b=strchr(b,'\t');
	      if (b!=NULL) b++;	/* decaler au prochain tab */
 
	    }
 
	  int neldo;
	  simu=fopen(entree2,"rt"); 
      if (!simu)
	{
	  printf("fichier %s n'existe pas.\n",entree2);
	}
      else
	{
	  //printf("fichier %s: ouverture.\n",simul);
 
	  // 1 lignes entetes
	  fgets(buffer,10000,simu);
      neldo=0;
 
	      //fgets(buffer,10000,simu);
 
	      // lire les donnees: 1ere linge temps
	      for (i=0, b=buffer; b!=NULL; i++)
		{
		  if (sscanf(b,"%lf",&Val[j][i])<1) break;
 
		  //printf("eldoread: %lg\n",Val[j][i]);
 
		  b=strchr(b,'\t');
		  if (b!=NULL) b++;	/* decaler au prochain tab */
		}
 
	      if (j==0) neldo=i;
	      else if (neldo!=i)
		    {  
		      fprintf(stderr,"Incompatibilite longueur lignes.\n"); 
		      exit(1); 
		    }
	  fclose(simu);
 
	  	  // copier col 'A'..'U' dans le fichier de sortie
	  for (i=0; i<TCOL; i++)
	    fprintf(results,"%lg\t",donnee[i]);
 
	  // copier SEU
	  fprintf(results,"%lg\t",Val[1]['V'-'A']);// copier SEU 
 
	  fprintf(results,"\n");
	  }
	  }
  fclose(lib);
  fclose(results);
 
return(0);
}