/* Program*/ /* Reading SDAS format*/ #include #include #include #include #include "sdas.h" // main function main(int argc, char *argv[]) { CmnPrm mds; CmnPrm *pds=&mds; int rfile, ptr; int resh, resd; /* result of functions: work_zgl, workdata*/ char name[100], stantype[6], *strbuf="/s:", *tpbuf="/t:", *p, *pt, newtype[3]="i4", agv1[100], *sl="\\", sl1[2]="\\"; int filePointer; long filesize; resd=1; if( argc<2 ) { printf("\nProgram for convert seismic data file\n" "from sdas-format to CSS V3.0 format\n" " Usage:\tsdas2css sdasfile [/t:datatype] \n" " Sample: sdas2css g55j88.sds /t:i4\n" "\nPress Enter" ); getchar(); return(0); } else { printf("\nProgram for convert seismic data file\n"); stantype[0]=0; strcpy(name, argv[1]); strcpy(agv1, argv[1]); if(argc>2) { if(argc>4) {printf("\n Too many parameters in command string!"); return(-5);} if(argc==4) { if(strncmp(argv[3],tpbuf,3) == 0) { p = strchr(argv[3],':'); p++; strcpy(newtype, p); strcpy(name, argv[2]); p = strchr(name,':'); if (p) { if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt); } else {if (strncmp(name,sl,1)==0) {//strcat(curdir, name); strcpy(name, curdir); if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt);} else {//strcat(sl, name); strcat(curdir, sl); strcpy(name, curdir); strcat(name, sl1); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt);} } } else if(strncmp(argv[2],tpbuf,3) == 0) { p = strchr(argv[2],':'); p++; strcpy(newtype, p); strcpy(name, argv[3]); p = strchr(name,':'); if (p) { if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt); } else {if (strncmp(name,sl,1)==0) {//strcat(curdir, name); strcpy(name, curdir); if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt);} else {//strcat(sl, name); strcat(curdir, sl); strcpy(name, curdir); strcat(name, sl1); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt);} } // if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); // pt = strrchr(agv1,'\\'); // if(pt == NULL) pt=agv1; else pt++; // strcat(name,pt); } else {printf("\nError in command string!"); return(-5);} } else { if (strncmp(argv[2],tpbuf,3)==0) { p = strchr(argv[2],':'); p++; strcpy(newtype, p); } else { strcpy(name, argv[2]); p = strchr(name,':'); if (p) { if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt); } else {if (strncmp(name,sl,1)==0) {//strcat(curdir, name); strcpy(name, curdir); if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt);} else {//strcat(sl, name); strcat(curdir, sl); strcpy(name, curdir); strcat(name, sl1); pt = strrchr(agv1,'\\'); if(pt == NULL) pt=agv1; else pt++; strcat(name,pt);} } // if(strcmp(sl, name+strlen(name)-1)!=0) strcat(name, sl); // pt = strrchr(agv1,'\\'); // if(pt == NULL) pt=agv1; // else pt++; // strcat(name,pt); } } }//*/ strcpy(name, argv[1]); printf("Open inputfile %s... ", argv[1] ); //----------------------------------------------------------------------- //----------------------------------------------------------------------- filePointer=fopen(name,"r"); fseek(filePointer,0,SEEK_END); filesize=ftell(filePointer); fclose(filePointer); //----------------------------------------------------------------------- //----------------------------------------------------------------------- rfile = open(argv[1], O_RDONLY | O_NONBLOCK);// | O_BINARY); // rfile = fopen(argv[1],"rb"); if (rfile != -1) { printf("Ok\n"); // strcpy(name, argv[1]); resh=work_zagl(rfile, pds, name, newtype, filesize); if(resh==0) { resd=work_dat(rfile, pds, name, newtype, filesize); } else return(1); if(resd==0) printf("\nProgram completed sucsessful"); else return(1); close(rfile); } else printf("FILE %s OPEN ERROR !", argv[1]); getchar(); } }