#include #include FILE *fopen(),*fp1,*fp2; char buf[200],title[100]; main(argc,argv) int argc; char **argv; { char file1[100],file2[20],init[3],flag[5],id1[4],id2[4]; int i,j,c,old=0; if(argc<2) { printf("USAGE: a.out path/file\n"); exit(-1); } if((fp1=fopen(argv[1],"r"))==NULL) { printf("No such file <%s>\n",argv[1]); exit(-1); } strcpy(id1,"xxx"); for(i=0,j=0; argv[1][i]!='\0'; i++) if(argv[1][i]=='/') j=0; else file2[j++]=argv[1][i]; file2[j]='\0'; memcpy(init,&file2[0],2); init[2]='\0'; while((c=getc(fp1))!=EOF) { if(!old) { i=0; title[i++]=c; while((c=getc(fp1))!='\n') title[i++]=c; title[i]='\0'; } else while((c=getc(fp1))!='\n'); getline(); getid(flag,id2); if(!strcmp(flag,"MUID")) if(strcmp(id1,id2)) { if(old) fclose(fp2); strcpy(file2,init); strcat(file2,id2); strcat(file2,".soil"); strcpy(id1,id2); fp2=fopen(file2,"w"); old=1; } fprintf(fp2,"%s\n",title); fprintf(fp2,"%s\n",buf); for(i=0; i<24; ) { c=getc(fp1); if(c=='\n') i++; fprintf(fp2,"%c",c); } } fclose(fp2); } getid(str1,str2) char str1[5],str2[4]; { memcpy(str1,&buf[41],4); str1[4]='\0'; memcpy(str2,&buf[46],3); str2[3]='\0'; } getline() { int c,i=0; while((c=getc(fp1))!='\n') buf[i++]=c; buf[i]='\0'; }