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
|
int zone;
int i,t;
char ligne[1024];
int position[16];
int lgMax[16]={30,6,100,100,40,20,40,40,100,100,100,100,100,10,40,40};
int pos;
char champ[101];
if ((fDest = fopen(nomdest, "w")) == NULL)//Créé le fichier fixe test si erreure
{
sprintf(txterr,"impossible d'ouvrir le fichier %s \n",nomdest);
Ecriture_err();
return(-2);
}
nb_ligne=0;
while(fgets(ligne,sizeof(ligne), fic_header)) //compte nombre de ligne sans le header et ajout des data dans le fichier fixe
{
nb_ligne++;
trimCRLF(ligne);
//Ecriture
t=strlen(ligne);
zone=1;
position[0]=0;
for(i=0;i<t;i++)//remplace les ; par des \0
{
if(ligne[i]==';')
{
ligne[i]=0;
position[zone++]=i+1; //donne la position de debut de chaque champs
}
}
if (zone>16)// + de 15 champs
{
log=1;
sprintf(txterr,"Attention il existe au moins un champ en trop à la ligne %d \n",nb_ligne+1);
Ecriture_err();
continue;
}
for(i=0;i<zone;i++)
{
strcpy(champ,&ligne[position[i]]);
lgMax[0]=30; //remet la valeur a 30 sinon bug... je c'est pas pourquoi
if(strlen(champ)>lgMax[i])
{
strcpy(champ," ");
}
if(i==2)
printf("%d ",lgMax[0]);
while(strlen(champ)<lgMax[i]+1)
strcat(champ," ");
if(i==2)
{
printf("%d ",lgMax[0]);
exit(0);
}
//lgMax bug après la boucle quand i=2
} |
Partager