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
|
void __stdcall lir_fic_met( char chaine[80],short *verif )
{
FILE *buf=NULL;
long pos;
int ret, an, jour;
float tmin, tmax;
Annee_x = 25;
Annee = calloc( Annee_x, sizeof(ST_ANNEE) );
Nb_annee = 0;
if (!Annee) exit(-1);
buf = fopen( chaine, "rb");
if (!buf) exit( -1 );
if (!fscanf( buf, "%f\r\n", &Latitude)) exit(-1);
while( 1 )
{
pos = ftell( buf );
ret = fscanf( buf, "%2d%3d,%4f,%4f\r\n", &an, &jour, &tmax,
&tmin);
if (ret < 4) break;
if (jour!=1) exit( -1 );
Annee[Nb_annee].annee = 1900 + an;
if (an < 20) Annee[Nb_annee].annee += 100; /* Annee 2000 */
Annee[Nb_annee].pos = pos;
Nb_annee++;
if (Nb_annee >= Annee_x)
{
Annee_x += 25;
Annee = realloc( Annee, Annee_x * sizeof(ST_ANNEE));
if (!Annee) exit(-1);
}
if (an%4==0) fseek( buf, 365L * 17, SEEK_CUR);
else fseek( buf, 364L * 17, SEEK_CUR);
}
fclose( buf );
*verif= Nb_annee;
} |
Partager