📄 sucountkey.su.main
字号:
SUCOUNTKEY - COUNT the number of unique values for a given KEYword. sucountkey < input.su key=[sx,gx,cdp,...] Example: suplane | sucountkey key=tracl,tracr,offset Credits: Baoniu Han, bhan@mines.edu, Nov, 2000 Globals variables*/segy tr; internal structuretypedef struct { int num; Value *val;} my_Count;int main (int argc, char **argv){ cwp_String key[SU_NKEYS]; /* array of keywords */ cwp_String type[SU_NKEYS]; /* array of keywords */ int index[SU_NKEYS]; /* name of type of getparred key*/ my_Count count_table[SU_NKEYS]; /* count table for keywords */ int ikey; /* key counter */ int nkeys; /* number of header fields set */ int i; /* count index */ Value val0; /* value of key field */ long buf_size; /* Initialize initargs(argc, argv); requestdoc(1); /* Get "key" values if ((nkeys=countparval("key"))!=0) { getparstringarray("key",key); } else { key[0]="cdp"; } /* you can increase this number to change the buffer size for each key word buf_size=100000L; /* get types and indexes corresponding to the keys for (ikey=0; ikey<nkeys; ++ikey) { type[ikey]=hdtype(key[ikey]); index[ikey]=getindex(key[ikey]); count_table[ikey].num=0; count_table[ikey].val=(Value *) malloc(sizeof(Value)*buf_size); } /* get info from first trace if (!gettr(&tr)) err("can't get first trace"); for(ikey=0;ikey<nkeys;++ikey){ count_table[ikey].num=1; gethval(&tr, index[ikey], &count_table[ikey].val[0]); } /* loop over traces while (gettr(&tr)) { for (ikey=0; ikey<nkeys; ++ikey) { gethval(&tr,index[ikey],&val0); for(i=0;i<count_table[ikey].num;i++) if (valcmp(type[ikey], val0, count_table[ikey].val[i])==0) break; if (i==count_table[ikey].num){ gethval(&tr, index[ikey], &count_table[ikey].val[count_table[ikey].num]); count_table[ikey].num++; } } } warn("The counting of key word is finished, the total number for specified header is as follow:"); for (ikey=0;ikey<nkeys;++ikey){ warn(" key %s has %d unique entries in this data", key[ikey], count_table[ikey].num); } return(CWP_Exit());}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -