You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.6 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//////////////////////////////////////////////////////////////////////////////
//文件: SegY格式文件操作
//主要功能:
//
//程序编写:
//日期2005-12-07
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "..\DrawLocal\FileSegy.h"
#include "format.h"
#include "formatitem.h"
namespace NMxn
{
class AFX_EXT_CLASS CMxnBase
{
public:
CMxnBase(void);
virtual ~CMxnBase(void);
public:
CFormatItem item; //当前格式的描述
char * head; //文件头
virtual int Initialize(CString name);
virtual void Close(void);
__int64 GetTotalTraceNumber() { return m; }
int GetSampleNumber() { return n; }
double GetSampleInterval() { return m_SampleInterval; }
int GetFormatCode(void) { return m_nFormatCode; }
int GetSampleByteLength(void) { return sz;}
CString GetSegyName(void) { return m_segy; }
CFileSegy* GetFile(void) { return &fr; }
BOOL OpenSegy(void);
BOOL OpenSegyWrite(void);
BOOL OpenSegyReadWrite(void);
void CloseSegy(void);
BOOL IsOpenSegy(void) { return fr.IsOpen(); }
void operator=(CMxnBase& mb);
__int64 SeekToTrace(__int64 nTraceIndex); //定位到指定道
__int64 GetTracePos(__int64 nTraceIndex); //获得指定道在文件中的位置
double BinaryToDouble(CBinaryPosition &fmt, int origin);//origin=SEEK_SET,SEEK_CUR,SEEK_END
double DoubleToBinary(double val, CBinaryPosition &fmt, int origin);
public:
CString m_segy;
CFormat format;
CFileSegy fr;
long m, n; //m为文件中总的道数,n为每道的采样点个数
int sz; //每个采样点的字节长度
int m_nFormatCode; //振幅数据的格式代码,1=IBM float,5=IEEE float
double m_SampleInterval; //采样间隔
};
}//namespace
using namespace NMxn;