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

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

?? seg2sgey.cpp

?? seg數據的各種轉換代碼
?? 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 = 0;

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(i.e file name.extensoin). -> ");
	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-2; 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-2;  // 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)	// delete for yuncheng 062001
				{
					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一区二区三区免费野_久草精品视频
玉足女爽爽91| 91尤物视频在线观看| 天天色天天操综合| 亚洲综合激情另类小说区| 综合中文字幕亚洲| 亚洲日本va午夜在线影院| 中文字幕中文字幕中文字幕亚洲无线 | 亚洲蜜臀av乱码久久精品蜜桃| 久久九九全国免费| 久久久www免费人成精品| 久久综合精品国产一区二区三区| 日韩欧美国产高清| 欧美精品一区二区三区高清aⅴ| 日韩美女天天操| 久久久久国产精品麻豆ai换脸| 国产丝袜欧美中文另类| 国产精品少妇自拍| 亚洲欧美另类小说| 亚洲午夜精品久久久久久久久| 亚洲一区二区中文在线| 视频一区二区中文字幕| 日本午夜精品视频在线观看| 精品在线播放午夜| 国产成人在线视频网址| 97久久精品人人做人人爽50路 | 欧美成人a在线| 久久人人97超碰com| 中日韩免费视频中文字幕| 国产精品国模大尺度视频| 亚洲美女一区二区三区| 日韩国产精品久久久久久亚洲| 久久精品国产一区二区三区免费看| 激情文学综合插| 波多野结衣视频一区| 91久久香蕉国产日韩欧美9色| 91精品国产91久久久久久一区二区| 日韩一级欧美一级| 国产女同性恋一区二区| 亚洲免费视频中文字幕| 日本亚洲电影天堂| 国产成人精品网址| 在线观看视频一区二区欧美日韩| 亚洲精品成a人| 免费人成精品欧美精品| 国产福利一区二区三区| 在线观看免费成人| 精品国产一区二区三区av性色| 国产精品久久777777| 天天av天天翘天天综合网色鬼国产 | 裸体健美xxxx欧美裸体表演| 国产不卡视频在线观看| 欧美日本一区二区在线观看| 久久精品无码一区二区三区| 一区二区三区欧美日| 精品无码三级在线观看视频| 色婷婷av久久久久久久| 精品国产网站在线观看| 一区二区三区欧美日| 国产高清一区日本| 欧美精品xxxxbbbb| 日韩美女视频19| 狠狠色狠狠色合久久伊人| 欧洲色大大久久| 欧美高清在线精品一区| 日韩在线观看一区二区| 91色在线porny| 久久精品亚洲乱码伦伦中文| 日本欧美一区二区三区| 91美女在线视频| 国产日韩欧美在线一区| 强制捆绑调教一区二区| 在线精品亚洲一区二区不卡| 亚洲国产精华液网站w| 美国av一区二区| 欧美日韩大陆一区二区| 亚洲色图制服丝袜| 国产成人精品免费看| 91精品国产福利| 亚洲电影一级黄| 一本一道波多野结衣一区二区| 国产欧美精品一区aⅴ影院| 捆绑紧缚一区二区三区视频 | 2020日本不卡一区二区视频| 同产精品九九九| 欧美性受极品xxxx喷水| 亚洲视频在线一区二区| 国产 欧美在线| 久久久久久免费网| 久久99久久精品欧美| 欧美精品欧美精品系列| 亚洲大片精品永久免费| 色婷婷精品大在线视频| 亚洲视频一二三| 成人黄色免费短视频| 久久亚洲捆绑美女| 韩国在线一区二区| 日韩亚洲欧美成人一区| 蜜臀va亚洲va欧美va天堂 | 亚洲国产日韩精品| 91视频精品在这里| 亚洲婷婷在线视频| 99re免费视频精品全部| 1000精品久久久久久久久| 成人免费毛片片v| 日本一区二区不卡视频| 国产.欧美.日韩| 国产精品理伦片| 91污片在线观看| 亚洲靠逼com| 欧美性做爰猛烈叫床潮| 日韩在线卡一卡二| 欧美一级午夜免费电影| 久久99精品视频| 久久久久9999亚洲精品| 成人综合在线视频| 中文字幕日韩精品一区 | 久久久久久久久久久黄色| 狠狠网亚洲精品| 国产亚洲欧美色| 9l国产精品久久久久麻豆| 亚洲视频免费在线观看| 欧美性大战久久| 丝袜亚洲另类欧美综合| 欧美成人精品3d动漫h| 国产麻豆一精品一av一免费 | 国产经典欧美精品| 国产精品久久久久久久第一福利 | 不卡的看片网站| 亚洲欧美日韩成人高清在线一区| 在线观看91视频| 全国精品久久少妇| 久久久久久久综合色一本| 成人一道本在线| 一区二区不卡在线视频 午夜欧美不卡在| 欧美午夜精品一区二区三区| 免费欧美在线视频| 久久精品一区二区三区四区| 99久久综合精品| 亚洲一级在线观看| 欧美大尺度电影在线| 成人精品视频网站| 亚洲国产毛片aaaaa无费看| 日韩欧美电影一区| 成人伦理片在线| 日韩综合小视频| 国产亚洲一二三区| 91久久精品国产91性色tv| 青娱乐精品视频| 国产精品成人一区二区三区夜夜夜| 欧美在线一区二区| 国产一区二区导航在线播放| 亚洲免费观看高清在线观看| 日韩欧美专区在线| 91丝袜美腿高跟国产极品老师| 日本不卡高清视频| 中文字幕一区二区三区在线播放| 在线不卡免费欧美| 波多野结衣亚洲一区| 免费观看在线综合色| 亚洲图片你懂的| 精品国产自在久精品国产| 色婷婷综合久久久久中文一区二区 | 久久疯狂做爰流白浆xx| 国产精品成人一区二区艾草| 日韩一级片在线播放| 色香蕉久久蜜桃| 国产999精品久久久久久绿帽| 午夜视频在线观看一区| 国产精品久久一卡二卡| 精品欧美乱码久久久久久| 欧美在线一二三| 成人app软件下载大全免费| 捆绑调教美女网站视频一区| 亚洲一区二区欧美日韩| 日本一区二区成人在线| 精品国产网站在线观看| 欧美日本国产视频| 色综合久久综合网97色综合| 国产丶欧美丶日本不卡视频| 秋霞国产午夜精品免费视频| 亚洲在线视频网站| 国产精品久久久久久久久果冻传媒| 欧美变态tickling挠脚心| 欧美视频在线一区二区三区| 99久久综合99久久综合网站| 国产乱子轮精品视频| 日本中文在线一区| 亚洲成人av一区| 亚洲激情第一区| 亚洲欧洲日产国码二区| 久久久亚洲午夜电影| 欧美v亚洲v综合ⅴ国产v| 6080亚洲精品一区二区| 欧美色图12p| 色天使色偷偷av一区二区| av电影天堂一区二区在线| 成人一区二区视频| 国产成人av资源| 国产在线精品一区在线观看麻豆| 蜜桃视频免费观看一区|