亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? seg2sgey.cpp

?? seg2-segy格式轉換工具
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

// 這個SEGY轉換程序作字節交換,記錄輔助道。

// Cvtseg.cpp for gqz240

//#define INCL_DOS
//#define INCL_SUBchar 
//#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "string.h"

#define MAXSAMP 16384  // max of 16k byte samples
#define MAXTRACES 16384   // SEG-2 limit
#define STRINGWIDTH 100   // allow up 100 char per keyword
#define MAXKEYWORDS 100  //
#define MAXPARMS 10  //   

//char *fpath = "E:\\yuncheng\\";  // add 2 lines by ytl
short NumAux = 2;

short outhead[120];  // output traceheader
long *outheadl;  // used when referncing outhead as a long array
float *outheadf;  // used when referncing outhead as a floating point array
char *outheadc;  // used when referncing outhead as a char array
//short i,j,k,kk,kk1,m,ssn,fstart,fend,count;
char string1[200];  
FILE *f1,*f2;
char temp;  //  
//
char prefix[STRINGWIDTH],start[10],end[10],exten[10],fname[STRINGWIDTH];
char outfile[STRINGWIDTH],answer[10];
long tracepointers[MAXTRACES];  //
unsigned long numsamples,datalength;
//
char segykeyword[MAXKEYWORDS][STRINGWIDTH];
char input[STRINGWIDTH],inputbuf[STRINGWIDTH];
short segyfunction[MAXKEYWORDS],segyheader[MAXKEYWORDS],totalkeys;
double segyparms[MAXKEYWORDS][MAXPARMS];
short segyreelheader[1800];//
short first = 1;
FILE *keyfile;
char *token;
short reverse = 0;  //
double dinbuf[MAXSAMP];
long *linbuf;
short *iinbuf;
float *finbuf;
unsigned char *cinbuf;
long outbuf[MAXSAMP];  //
//
short blockid,revnum,pointerbytecount,numtrace;
unsigned short blockleng;
char stringtermcount,stringterm1,stringterm2;
char linetermcount,lineterm1,lineterm2;
char reserved[19];
short stringlength;
unsigned char datatype;
short ftmp,fcomp;

void readsegykeys();
void keycheck();
void ieee2ibm(float *,short );

void main()
{
short i,j,k,kk,kk1,m,ssn,fstart,fend,count;

	iinbuf = (short *)&dinbuf[0];  // used for interger input (16 bit)
	finbuf = (float *)&dinbuf[0];  // used for float point (4 byte)
	linbuf = (long *)&dinbuf[0];  // used for long int (32 bit)
	cinbuf = (unsigned char *)&dinbuf[0];  //used for 20 bitpacked
	outheadl = (long *)&outhead[0]; 
	outheadf = (float *)&outhead[0];
	system ("cls");  // clear screen
	printf("        SEG2SEGY V1.1 - OS/2 - MSDOS\n\n");
	printf("	  地震數據轉換實用程序\n\n");
//	printf("      Seicmic Data Conversion Utility\n");
//	printf("    Copyright Kansas Geological Survey 1987-1990\n");
//	printf("  WELCOME OPRATPR TO THE SEG-2->SEG-Y PRE-PROCESSOR\n");
	printf("      歡迎您使用 SEG-2->SEG-Y 予處理程序\n");
	printf("\n\n這個SEGY轉換程序作字節交換,記錄輔助道。");

	printf
	("\n\n This program converts the SEG-2 data files to SEG-Y file format\n");
	printf
	(" NOTE:SEG-Y file is in fixed 32 bit int & byte reversed for main-frames\n");
	printf("\n Program assumes there are 1 or more files to convert");
	printf("\n with similar names containing ASCENDING numbers,i.e");
	printf("\n SEG00001.DAT,SEG00002.DAT,... SEG00099.DAT ");
	printf("\n\n Press RETURN when ready to proceed,CTRL-C to abort");
	gets(answer);
	system("cls");
startovr:
	printf("\n\n Enter the PREFIX name of the files,(i.e SEG) -> ");
	gets(prefix);
badext:
	printf("\n Please enter the EXTENSION of the files if present.i.e .DAT ");
	printf("\n Iclude the (PERIOD) in name! -> ");
	gets(exten);
	if(4 < strlen(exten))
	{
		system("cls");
		printf("\nEXTENSION CAN'T BE MORE THAN 3 LETTERS");
		goto startovr;
	}
	if(strlen(exten) && exten[0] != '.')
	{
		printf("\nFirst character of an EXTENSION must be a period(.)\n");
			goto badext;
	}
tryagain:
	printf("\n Next enter the file numbers for the records to be");
	printf("\n changed. For instance if ther are to be 3 files");
	printf("\n converted named SEG00014,SEG00015,AND SEG00016,the first");
	printf("\n number you should enter is 000014,then when asked for ending");
	printf("\n enter 00016.\n REMEMBER TO ENTER LEADING 0's i.e.00014 not 14");
	printf("\n\n Please enter STARTING number ->");
	gets(start);
	printf("\n Please enter ENDING number ->");
	gets(end);
//	if(strlen(start) != strlen(end))
//	{
//		system("cls");
//		printf("\n\n   Invalid numbers try again\n");
//		goto tryagain;
//	} delete 6 lines by ytl 000720
	fstart = atoi(start);
	fend = atoi(end);
//	if(fstart > fend)
//	{
//		system("cls");
//		printf("\n\n  Only ABCENDING file numbers!\n");
//		goto tryagain;
//	}delete 6 lines by ytl 000720
	system("cls");
	printf("\n You have chosen files :\n\n");
	printf("%s%s%s",prefix,start,exten);
	printf(" through %s%s%s\n\n",prefix,end,exten);
	printf("Is this correct? (y/n) -> ");
	gets(answer);
	if(answer[0]=='n' || answer[0]=='N')
	{
		system("cls");
		goto startovr;
	}
	printf("\nPlease enter the name of the output file -> ");
	gets(outfile);
	f2 = fopen(outfile,"wb");  //
	if(f2 == NULL)
	{
		printf("**OUTPUT FILE OPEN FAILURE**\n**ABORTING**\n");
		exit(1);
	}
//	fclose(f2);  //////////////////////
	printf("\nPlease enter the STARTING Shot Sequence Number(SSN) ->");
	gets(answer);
	ssn = atoi(answer);
	system("cls");
	readsegykeys();  // read in segy key words and save them
	printf
		("\n\nDo you want the input files deleted as they are converted?([n]/y) -> ");
	answer[0] = '\0';
	gets(answer);
	fcomp = 0;	// add 11 lines by ytl 000720
	if(fstart > fend)
	{
		ftmp = fstart;
		fstart = fend;
		fend = ftmp;
		fcomp = 1;
		kk1 = fend;
	}
	else
		kk1 = fstart;

	for(kk=fstart; kk<=fend; kk++) // start a big loop!
	{
		fname[0] = '\0';
		strcat(fname,prefix);
		if(strlen(start))
			itoa(kk1,start,10);
//		count = strlen(end)-strlen(start);	
//
//		for(m=1; m<=count; m++)
//		{
//			strrev(start);
//			strcat(start,"0");
//			strrev(start);
//		} delete 8 lines by ytl 000720
//		strcat(fname,fpath);  // new add 1 lines by ytl 000623
		strcat(fname,start); //
		strcat(fname,exten);
		printf("\nWording on %s\n",fname);
		f1 = fopen(fname,"rb");
		if(f1 == NULL)
		{
			printf("\n***SYSTEM REPORTS ERROR OPENING FILE %s***",fname);
			printf("Skipping to next file number\n");
			if(fcomp)	// add 4 lines by ytl 000714
				kk1--;
			else
				kk1++;

			continue;
		}
		fread(&blockid,2,1,f1);
		//
		if(blockid == 0x553a)
		{
			reverse = 1;
			printf("Byte reverse data not allowed.\n");
			exit(1);
		}
		if(blockid != 0x3a55)
		{
			printf("Not SEG-2 data can not continue\n");
			exit(1);
		}
		fread(&revnum,2,1,f1);
		fread(&pointerbytecount,2,1,f1);
		fread(&numtrace,2,1,f1);

		printf("Data revision number = %d\n",revnum);
		printf("Nunber of trace = %d\n",numtrace);
		fread(&stringtermcount,1,1,f1);
		fread(&stringterm1,1,1,f1);
		fread(&stringterm2,1,1,f1);
		fread(&linetermcount,1,1,f1);
		fread(&lineterm1,1,1,f1);
		fread(&lineterm2,1,1,f1);
		//
		fread(&reserved,1,18,f1);
		//
		//
		//
		if(numtrace != (pointerbytecount/4))
		{
			printf("Number of trace and number of trace pointers do not match\n");
			printf("Number of pointers = %d\n",pointerbytecount/4);
			printf("Due to this inconsistency processing must stop\n");
			exit(1);
		}
		//  ok new read in the list
		fread(tracepointers,4,numtrace,f1);
/* The next block is the FILE DESCRIPTOR BLOCK.It is a set of strings, each terminaterd
	by the string _term_character(s).Each string is preceded by 1 WORD which is the byte  
	count for the string+termchar+2.(2 for the length of the word giving the count.) A
	value of 0 represents the end of the block.
*/
		fread(&stringlength,2,1,f1);
		while(0 != stringlength)
		{
			fread(string1,1,stringlength-2,f1);
			keycheck();
			fread(&stringlength,2,1,f1);
		}
		for(j=0; j<numtrace; j++)
		{
			printf("trace-%d- ",j+1);
			fseek(f1,tracepointers[j],SEEK_SET);  // SEEK_SET: go to beginning of data block
			fread(&blockid,2,1,f1);
			if(blockid == 0x2244)
			{
				reverse = 1;
				printf("Reversed data not allowed at this time\n");
				exit(1);
			}
			if(blockid != 0x4422)
			{
				printf("Not SEG-2 data can not process %x\n",blockid);
				exit(1);
			}
			fread(&blockleng,2,1,f1);
			fread(&datalength,4,1,f1);
			fread(&numsamples,4,1,f1);
/* 
	1 = 16 bit fixed. (INT)
	2 = 32 bit fixed. (LONG)
	3 = 20 bit packed floating.
	4 = 32 bit ieee floating point.(FLOAT)
	5 = 64 bit ieee floating point.(DOUBLE)
*/
			fread(&datatype,1,1,f1);
			if(datatype > 5 || datatype < 1)
			{
				printf("Data type %d not avilable/valid\n",(short)datatype);
				break;
			}
			outhead[57] = numsamples;
			fread(reserved,1,19,f1);
			fread(&stringlength,2,1,f1);
			while(0 != stringlength)
			{
				fread(string1,1,stringlength-2,f1);
				keycheck();
				fread(&stringlength,2,1,f1);
			}
			printf("\n");
			fseek(f1,blockleng+tracepointers[j],SEEK_SET);  // go to beginning of seicmic data
			switch(datatype)
			{
			case 1:
				{
					fread(iinbuf,2,(short)numsamples,f1);
					for(k=0; k<numsamples; k++)
						outbuf[k] = iinbuf[k];
					break;
				}
			case 2:
				{
					fread(linbuf,4,(short)numsamples,f1);
					for(k=0; k<numsamples; k++)
						outbuf[k] = linbuf[k];
					break;
				}
			case 3:
				{
					unsigned short totalbytes,subpointer;
					unsigned short expo;
					long longdat;
					totalbytes = (numsamples * 5)/2;
					fread(cinbuf,1,totalbytes,f1);
					for(k=0; k<(numsamples);  )
					{
						subpointer = (k / 4) * 5;
						expo = (unsigned short)iinbuf[subpointer++];
						for(i=0; i<4; i++)
						{
							if(0x8000 & iinbuf[subpointer])
								longdat = 0xffff8000;
							else
								longdat = 0;
							longdat = longdat | ((long)iinbuf[subpointer++] << (0x000f & expo));
							expo >>= 4;
							outbuf[k++] = longdat;
						}
					}
					break;
				}
			case 4:
				{
					fread(finbuf,4,(short)numsamples,f1);
					for(k=0; k<numsamples; k++)
						outbuf[k] = finbuf[k];
					break;
				}
			case 5:
				{
					fread(dinbuf,8,(short)numsamples,f1);
					for(k=0; k<numsamples; k++)
						outbuf[k] = dinbuf[k];
					break;
				}
			} // end switch
			//
			//
			//
			//
			//
//			if(outheadl[2] == 0)  // delete 1 line by ytl
				outheadl[2] = (long)kk1;
			//
			//
//			if(outhead[14] == 0) delete 1 line by ytl
				outhead[14] = (long)1; // seismic data.
			if(NumAux != 0 && j == numtrace-2)	// add 4 lines by ytl 000712		
				outhead[14] = (long)4;
			if(NumAux != 0 && j == numtrace-1)			
				outhead[14] = (long)5;

/*			if(j == numtrace-1 && outhead[87] == 0)
			{
				outhead[87] = 1;
				ssn = ssn + 1;
			}  	delte by ytl 000712	 */
			outheadl[9] = (long)(abs(outhead[93]-outhead[92]));
			outhead[85] = outhead[86] = (short)(1+labs((long)outhead[92] - outheadl[3]));
			if(first == 1)
			{
				first = 0;
				segyreelheader[1606] = numtrace-NumAux;  // was numtrace 
				segyreelheader[1607] =  NumAux;  // add 2 lines by ytl  000629
				segyreelheader[1627] = 1;  //  meters 
				segyreelheader[1608] = outhead[58];
				segyreelheader[1609] = outhead[58];
				segyreelheader[1610] = numsamples;
				segyreelheader[1611] = numsamples;
				segyreelheader[1612] = 2;
				for(k=1600; k<1606; k+=2)
				{
					outheadc = (char*)&segyreelheader[k];
					temp = outheadc[3];
					outheadc[3] = outheadc[0];
					outheadc[0] = temp;
					temp = outheadc[2];
					outheadc[2] = outheadc[1];
					outheadc[1] = temp;
				}
				for(k=1606; k<1630; k++)
				{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人久久精品77777最新版本| 日韩欧美亚洲国产精品字幕久久久| 欧美日韩国产综合久久| 久久综合狠狠综合| 亚洲国产va精品久久久不卡综合| 丁香另类激情小说| 日韩精品中文字幕在线不卡尤物| 一级中文字幕一区二区| 国产成人av一区二区三区在线| 91.com视频| 一区二区三区欧美日| 99久久伊人网影院| www亚洲一区| 久久国产精品第一页| 欧美肥妇free| 午夜精品久久久久久久99水蜜桃| 91在线高清观看| 中文字幕在线视频一区| 精品中文av资源站在线观看| 欧美一区二区黄色| 日韩精品免费专区| 欧美精品在欧美一区二区少妇| 亚洲日本成人在线观看| 99re热这里只有精品视频| 国产肉丝袜一区二区| 国产精品一区二区在线观看不卡| 日韩三级高清在线| 日本三级亚洲精品| 亚洲男人天堂av| 粉嫩蜜臀av国产精品网站| 国产亚洲综合av| 国产精品影视网| 国产亚洲人成网站| 懂色av中文字幕一区二区三区| 久久这里只有精品视频网| 狠狠色2019综合网| 久久久亚洲高清| 国产99久久久久| 国产精品女人毛片| 色综合久久久久综合体| 一区二区三区欧美| 欧美日韩aaa| 免费成人在线网站| 久久网站热最新地址| 国产成人综合视频| 成人欧美一区二区三区视频网页| 色噜噜狠狠色综合中国| 日韩有码一区二区三区| 精品国产伦一区二区三区观看体验| 麻豆精品视频在线观看视频| 久久久精品日韩欧美| 9久草视频在线视频精品| 亚洲欧洲国产日韩| 69久久夜色精品国产69蝌蚪网| 青青草97国产精品免费观看无弹窗版| wwwwww.欧美系列| 99热这里都是精品| 日韩黄色免费网站| 国产欧美一区二区三区在线看蜜臀 | 日韩有码一区二区三区| 欧美不卡一区二区三区| 成人不卡免费av| 亚洲一二三四区| 欧美精品一区二区三区四区| www.欧美.com| 蜜臀a∨国产成人精品| 国产精品久久久久一区二区三区共 | 国产精品一卡二卡在线观看| 亚洲人午夜精品天堂一二香蕉| 538在线一区二区精品国产| 国产成人在线看| 亚洲福中文字幕伊人影院| 久久精品亚洲精品国产欧美| 在线观看日韩电影| 国产精品伊人色| 亚洲福中文字幕伊人影院| 国产亚洲精品7777| 91精品国模一区二区三区| 成a人片国产精品| 久久成人羞羞网站| 亚洲成人资源网| 国产欧美日韩视频在线观看| 91精品一区二区三区在线观看| 丰满少妇久久久久久久| 男女男精品视频| 亚洲午夜国产一区99re久久| 国产日本欧美一区二区| 欧美一区二区三区视频免费| 色综合久久久久| 成人午夜视频福利| 国产在线一区观看| 午夜伊人狠狠久久| 亚洲另类在线视频| 中文字幕中文字幕一区| 中文字幕成人网| 久久久久久久久久久久电影 | 成人激情综合网站| 久久成人av少妇免费| 香蕉加勒比综合久久| 一卡二卡欧美日韩| 亚洲精品一二三四区| 中文字幕一区三区| 国产三级三级三级精品8ⅰ区| 日韩精品一区二区三区在线观看| 欧美视频精品在线观看| 色婷婷综合久久久中文一区二区 | 国产一区二区美女| 久久99这里只有精品| 免费在线视频一区| 日本免费在线视频不卡一不卡二| 亚洲va韩国va欧美va| 亚洲v日本v欧美v久久精品| 亚洲午夜精品在线| 亚洲成年人网站在线观看| 亚洲国产裸拍裸体视频在线观看乱了 | 一区二区三区毛片| 亚洲免费在线视频一区 二区| 综合欧美一区二区三区| 中文字幕亚洲精品在线观看| 日韩理论片中文av| 亚洲综合男人的天堂| 亚洲国产精品影院| 日韩成人精品视频| 国产一区福利在线| 成人自拍视频在线观看| 91在线码无精品| 欧美性猛交一区二区三区精品| 欧洲精品一区二区| 91精品中文字幕一区二区三区 | 欧美吞精做爰啪啪高潮| 中文字幕亚洲欧美在线不卡| 一区二区三区久久| 日韩电影在线一区| 国产美女一区二区三区| 波多野结衣一区二区三区| 91成人国产精品| 日韩欧美国产综合| 欧美国产日韩a欧美在线观看| 亚洲欧洲av另类| 亚洲综合久久久久| 麻豆精品国产91久久久久久| 国产传媒久久文化传媒| 色综合久久66| 日韩欧美色综合网站| 国产精品女同一区二区三区| 亚洲一区免费在线观看| 青娱乐精品视频| 成人久久18免费网站麻豆| 欧美性大战久久久久久久蜜臀| 欧美一卡在线观看| 国产精品国产三级国产普通话99 | 91精品在线麻豆| 久久欧美中文字幕| 一区二区三区视频在线看| 久草这里只有精品视频| 色哟哟国产精品| 欧美精品一区二区久久久| 亚洲婷婷国产精品电影人久久| 亚洲成年人网站在线观看| 国产+成+人+亚洲欧洲自线| 欧美午夜电影网| 中文av字幕一区| 日本不卡一二三| 99久久夜色精品国产网站| 欧美精品久久久久久久久老牛影院| 国产丝袜欧美中文另类| 午夜a成v人精品| 99re这里只有精品6| 午夜伦欧美伦电影理论片| 成人综合激情网| 欧美一级理论性理论a| 亚洲人成网站色在线观看| 国产精品自拍毛片| 欧美精品一卡二卡| 亚洲人成小说网站色在线| 国产成人精品免费看| 日韩免费高清电影| 天天av天天翘天天综合网 | 伊人夜夜躁av伊人久久| 东方欧美亚洲色图在线| 欧美一区二区在线免费观看| 一区二区三区在线免费观看 | 91久久精品一区二区| 久久综合九色综合97婷婷| 天堂蜜桃一区二区三区 | 成人精品一区二区三区四区| 欧美岛国在线观看| 日韩av一区二区三区四区| 欧美三级电影在线看| 亚洲乱码中文字幕| 91日韩在线专区| 亚洲情趣在线观看| 91一区二区在线| 国产精品福利一区二区| 粉嫩一区二区三区性色av| 国产女主播在线一区二区| 国产精品1024| 中文乱码免费一区二区 | 国产成人精品一区二区三区网站观看| 欧美成人官网二区|