# include # include # define LINLEN 80 /* crude hardwired teardown of gaussian 92 output files, looks for key words Distance Z-Mat ZERO-POINT and GINC */ int main(argc,argv) int argc; char **argv; { char CurentLine[LINLEN],*ptr; FILE *File1,*File2; char Outfile[LINLEN],InFile[LINLEN], *logptr,*srt,*outptr; int i,j; Outfile[0]='b';Outfile[1]='a';Outfile[2]='d'; Outfile[3]='i';Outfile[4]='n';Outfile[5]='p'; Outfile[6]='u';Outfile[7]='t';Outfile[8]='.'; Outfile[9]='l';Outfile[10]='o';Outfile[11]='g'; Outfile[12]= '\n'; if(argc<1) return(1); printf("\n argv1 was\n"); printf(argv[1]); printf("XXXXX"); if (logptr = strstr(argv[1],".out")) { *(logptr+4) = 0; strcpy(InFile,argv[1]); } printf("XXXEndfilenamemarker "); if ((File1=fopen(InFile,"rt"))==NULL) { printf("\n got a dud argv[1]\n"); return(1); } if (logptr = strstr(argv[1],".out")) strcpy(Outfile,argv[1]); if (logptr = strstr(Outfile,".out")) { *(logptr +1) = 'c'; *(logptr +2) = 'o'; *(logptr +3) = 'm'; } if ((File2=fopen(Outfile,"wt"))==NULL) return(1); for(;;) { if(fgets(CurentLine,LINLEN,File1)==NULL) return(0); ptr=strstr(CurentLine,"#"); if (ptr!=NULL) for(;;) { if(outptr==ptr) { fclose(File2); fclose(File1); return(0); } switch ((int) *ptr) { case '\\': putc('\n',File2); ptr++; break; case '\n': if(fgets(CurentLine,LINLEN,File1)==NULL) { fclose(File2); fclose(File1); return(0); } outptr=strstr(CurentLine,"Ver"); ptr=CurentLine; break; default: putc(*(ptr++),File2); break; } } } }