/* Program*/ /* Reading SDAS format*/ #include #include #include #include #include #include #include #include "sdas.h" #include #include #include char *current_directory(char *path) { strcpy(path, "X:\\"); /* fill string with form of response: X:\ */ path[0] = 'A' + getdisk(); /* replace X with current drive letter */ getcurdir(0, path+3); /* fill rest of string with current directory */ return(path); } // main function main(int argc, char *argv[]) { char curdir[MAXPATH]; 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]="\\"; current_directory(curdir); resd=1; if( argc<2 ) { printf("\nProgram for convert seismic data file\n" "from sdas-format to CSS V3.0 format\n" " Usage:\tSDAS2CSS SDAS_dir [WFD_dir] [/t:datatype] \n" " Sample: SDAS2CSS d:\\SDASdir\\g55j88.sds h:\\work\\SGD /t:i4\n where" "\t d:\\WFD_dir\\ - directory for output\n \t " "\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(strncmpi(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 (strncmpi(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(strncmpi(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 (strncmpi(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 (strncmpi(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 (strncmpi(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); } } } printf("Open inputfile %s... ", argv[1] ); rfile = open(argv[1], O_RDONLY | O_BINARY); if (rfile != -1) { printf("Ok\n"); // strcpy(name, argv[1]); resh=work_zagl(rfile, pds, name, newtype); if(resh==0) resd=work_dat(rfile, pds, name, newtype); else return(1); if(resd==0) printf("\nProgram completed sucsessful"); else return(1); close(rfile); } else printf("FILE %s OPEN ERROR !", argv[1]); getchar(); } }