|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD>: SegY<67><59>ʽ<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д:
|
|
|
|
|
|
//<2F><><EFBFBD>ڣ<EFBFBD>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; //<2F><>ǰ<EFBFBD><C7B0>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
char * head; //<2F>ļ<EFBFBD>ͷ
|
|
|
|
|
|
|
|
|
|
|
|
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); //<2F><>λ<EFBFBD><CEBB>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>
|
|
|
|
|
|
__int64 GetTracePos(__int64 nTraceIndex); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>е<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
|
|
|
|
|
|
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Ϊ<6D>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ܵĵ<DCB5><C4B5><EFBFBD>,nΪÿ<CEAA><C3BF><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
int sz; //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڳ<D6BD><DAB3><EFBFBD>
|
|
|
|
|
|
int m_nFormatCode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĸ<DDB5>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>,1=IBM float,5=IEEE float
|
|
|
|
|
|
double m_SampleInterval; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
}//namespace
|
|
|
|
|
|
|
|
|
|
|
|
using namespace NMxn;
|