--- rleda/rleda.c 2003/12/12 18:53:44 1.1 +++ rleda/rleda.c 2003/12/12 19:08:17 1.2 @@ -1,8 +1,12 @@ -/* $Id: rleda.c,v 1.1 2003/12/12 18:53:44 brouard Exp $ +/* $Id: rleda.c,v 1.2 2003/12/12 19:08:17 brouard Exp $ $State: Exp $ $Log: rleda.c,v $ - Revision 1.1 2003/12/12 18:53:44 brouard - Initial revision + Revision 1.2 2003/12/12 19:08:17 brouard + Les variables ne sont plus toutes écrites en ligne mais avec un retour + à la ligne toutes les 5 variables. + + Revision 1.1.1.1 2003/12/12 18:53:44 brouard + Import de rleda rleda.c @@ -32,8 +36,8 @@ #define ODIRSEPARATOR '/' #endif -char version[]="rleda-0.9 Programme de lecture de fichiers d'index au format LEDA convertis de l'EBCDIC en ASCII "; -char fullversion[]="$Revision: 1.1 $ $Date: 2003/12/12 18:53:44 $"; +char version[]="rleda-0.9.1 Programme de lecture de fichiers d'index au format LEDA convertis de l'EBCDIC en ASCII "; +char fullversion[]="$Revision: 1.2 $ $Date: 2003/12/12 19:08:17 $"; char line[MAXLINE]; char title[MAXLINE],namevar[MAXLINE], namevara[MAXLINE]; @@ -228,7 +232,7 @@ void trzb(char *z, char *in) main(int argc, char *argv[]) { int numlinepar=0; - long nobs, ncar,ncara, ncartes, nn; + long nobs, ncar,ncara, ncartes, nn, nvaris=0; long c; long d; long numlis, ntype; @@ -307,10 +311,10 @@ main(int argc, char *argv[]) goto end; } fprintf(ficparsas,"*Sortie de rleda version %s *;\n* %s *;\n",version,fullversion); - fprintf(ficparsas,"libname optionfilefiname \"%s\";\n",path); - fprintf(ficparsas,"filename a \"%s\";\n", filesas); - fprintf(ficparsas,"* Ci dessous à modifier *;\n"); - fprintf(ficparsas,"data %s.?? (keep=??);\n",optionfilefiname); + fprintf(ficparsas,"libname %s \"%s\";\n",optionfilefiname,path); + fprintf(ficparsas,"filename a \"%s.dat\";\n",optionfilefiname ); + fprintf(ficparsas,"* Ci dessous a modifier *;\n"); + fprintf(ficparsas,"data %s.u?? (keep=??);\n",optionfilefiname); fprintf(ficparsas,"infile a lrecl=500 ;\n"); fprintf(ficparsas,"input id 1. @; retain numero 0;\n"); fprintf(ficparsas,""); @@ -319,7 +323,7 @@ main(int argc, char *argv[]) printf("Le nom du fichier de sortie est %s\n",filereso); printf("Le nom du fichier SAS de sortie est %s\n",filesas); - pos=9; + pos=9;nvaris=0 ; level=0; while((c=getc(ficpar)) != EOF){ ungetc(c,ficpar); @@ -360,8 +364,9 @@ main(int argc, char *argv[]) olevel=level; level=title[0]-48; printf(" Niveau = %d Colonnes 1 8 = %s\n",level,title); + fprintf(ficlog," Niveau = %d Colonnes 1 8 = %s\n",level,title); fprintf(ficparo," Niveau = %d Colonnes 1 8 = %s\n",level,title); - if(level !=0) fprintf(ficparsas,"if id=%d then do;\n",level); + if(level ==0) fprintf(ficparsas,"if id=%d then do;\n",level); /* fprintf(ficparsas," input @9 "); */ nobs=0;for(n=0;n<2;n++){ c=getc(ficpar); nobs+=(n+(1-n)*256)*ascii_to_ebcdic[c];} fprintf(ficlog,"nobs=%d ",nobs); ncara=0;for(n=0;n<2;n++){ c=getc(ficpar); ncara+=(n+(1-n)*256)*ascii_to_ebcdic[c]; } fprintf(ficlog,"ncara=%d ",ncara); @@ -409,11 +414,9 @@ main(int argc, char *argv[]) if(strrchr(title,'C')!= 0 || strrchr(title,'G')!=0){ if(level!=olevel){ pos=9; - if(olevel !=0){ - fprintf(ficparsas," output %s.%d;\n",optionfilefiname,olevel); - fprintf(ficparsas," end\n"); - } - if(level !=1) fprintf(ficparsas,";\n else if id=%d then do;\n",level); + fprintf(ficparsas,";\n output %s.u%d;\n",optionfilefiname,olevel); + fprintf(ficparsas," end\n"); + if(level !=0) fprintf(ficparsas,";\n else if id=%d then do;\n",level); fprintf(ficparsas," input @9 "); olevel=level; } @@ -425,7 +428,11 @@ main(int argc, char *argv[]) } namevar[n]='\0'; fprintf(ficparsas, " %s $%d.", namevar, ncara); - pos+=ncara; + pos+=ncara;nvaris++ ; + if (nvaris>=5) { + fprintf(ficparsas,"\n ") ; + nvaris=0 ; + } } nobs=0;for(n=0;n<2;n++){ c=getc(ficpar); nobs+=(n+(1-n)*256)*ascii_to_ebcdic[c];} fprintf(ficlog,"nobs=%d ",nobs); nobs=0;for(n=0;n<2;n++){ c=getc(ficpar); nobs+=(n+(1-n)*256)*ascii_to_ebcdic[c];} fprintf(ficlog,"nobs=%d ",nobs); @@ -464,7 +471,7 @@ main(int argc, char *argv[]) fprintf(ficlog,"\n"); fprintf(ficparo,"\n"); } - fprintf(ficparsas,";\n output %s%d;\n end;\n else input;\n run;",optionfilefiname,level); + fprintf(ficparsas,";\n output %s.u%d;\n end;\n else input;\n run;",optionfilefiname,level); fclose(ficparsas); printf("Le nom du fichier de debug est %s\n",filelog); printf("Le nom du fichier du format de sortie est %s\n",filereso);