logplus/Slfio/include/LogIO.h
2025-10-29 17:23:30 +08:00

660 lines
22 KiB
C++

#ifndef __LOGIO_H__
#define __LOGIO_H__
#include "slf.h"
//常规曲线
typedef struct tagSlf_CURVE
{
char Name[64];//[16]; //曲线名
char AliasName[64];//[16]; //曲线别名
char Unit[32];//[8]; //曲线单位名
char AliasUnit[32];//[16]; //曲线单位别名
WORD RepCode;
WORD CodeLen;
float MinValue;
float MaxValue;
float StartDepth;
float EndDepth;
float DepLevel;
char DepthUnit[32];//[8];
//
char DepthHZUnit[32];
float DefVal;// 4 缺省值
short SerialID;// 2 所属系列代码
short ChangeNum;// 2 修改次数
char DataSource[20];// 20 数据来源
char LogCopanyName[64];//公司名
char LoggingTeam[20];//测井队
char Operator[20];//操作员
unsigned int LoggingDate;//测井时间 4
/*whp add
//初始化
tagSlf_CURVE()
{
strcpy(Name,"");//[16];
strcpy(AliasName,"");//[16];
strcpy(Unit,"");//[8];
strcpy(AliasUnit,"");//[16];
RepCode=4;
CodeLen=4;
MinValue=0.;
MaxValue=100.;
StartDepth=0.;
EndDepth=100.;
DepLevel=0.125;
strcpy(DepthUnit,"m");
strcpy(DepthHZUnit,"米");
DefVal=-9999.;// 4 缺省值
SerialID=0;// 2 所属系列代码
ChangeNum=1;// 2 修改次数
strcpy( DataSource,"create");// 20 数据来源
strcpy( LogCopanyName,"测井公司");//公司名
strcpy( LoggingTeam,"");//测井队
strcpy( Operator,"");//操作员
LoggingDate=0;//测井时间
}*/
}Slf_CURVE;
//波列曲线
typedef struct tagSlf_WAVE
{
char Name[64];//[16];
char AliasName[64];//[16];
char Unit[32];//[8];
char AliasUnit[32];//[16];
WORD RepCode;
WORD CodeLen;
float MinValue;
float MaxValue;
float StartDepth;
float EndDepth;
float DepLevel;
char DepthUnit[32];
char DepthHZUnit[32];
float DefVal;// 4 缺省值
short SerialID;// 2 所属系列代码
short ChangeNum;// 2 修改次数
char DataSource[20];// 20 数据来源
char LogCopanyName[64];//公司名
char LoggingTeam[20];//测井队
char Operator[20];//操作员
unsigned int LoggingDate;//测井时间
int ArrayNum;// 4 阵列数
int SamplePoint;// 4 一个阵列的横向采样样本点数
float StartTime;
float TimeLevel;
DWORD TimeSamples;
char TimeUnit[32];
char TimeHZUnit[32];
char TimeName[64];
char TimeHZName[64];
/*whp add
//初始化
tagSlf_WAVE()
{
strcpy(Name,"");//[16];
strcpy(AliasName,"");//[16];
strcpy(Unit,"");//[8];
strcpy(AliasUnit,"");//[16];
RepCode=4;
CodeLen=4;
MinValue=0.;
MaxValue=100.;
StartDepth=0.;
EndDepth=100.;
DepLevel=0.125;
strcpy(DepthUnit,"m");
strcpy(DepthHZUnit,"米");
DefVal=-9999.;// 4 缺省值
SerialID=0;// 2 所属系列代码
ChangeNum=1;// 2 修改次数
strcpy( DataSource,"create");// 20 数据来源
strcpy( LogCopanyName,"测井公司");//公司名
strcpy( LoggingTeam,"");//测井队
strcpy( Operator,"");//操作员
LoggingDate=0;//测井时间
ArrayNum=1;// 4 阵列数
SamplePoint=100;// 4 一个阵列的横向采样样本点数
StartTime=0;
TimeLevel=1;
DWORD TimeSamples=100;
strcpy( TimeUnit,"");
strcpy( TimeHZUnit,"");
}*/
}Slf_WAVE;
typedef struct Image_Table
{
int Order;
float StartDepth;
float EndDepth;
float Left,Width;
char Image[100];
} IMAGE_DATA;
typedef struct tagSlf_LONG_CONST
{
char MNEM[16];
int VALUE;
char UNIT[8];
char DESC[40];
} Slf_CONST;
typedef struct tagSlf_STRING_CONST
{
char MNEM[16];
char VALUE[40];
char UNIT[8];
char DESC[40];
} Slf_STRING;
typedef struct tagSlf_CORE_PHYSICS
{
int Order;
float Depth;
float CorrDepth;
float CoreValue;
} Slf_CORE_PHYSICS;
typedef struct tagSlf_FMT
{
char Name[64];
char AliasName[64];
char Unit[32];
char AliasUnit[64];
float MinValue;
float MaxValue;
DWORD TotalPointNum;
DWORD MaxPointSamples;
char DepthUnit[32];
float StartTime;
float TimeLevel;
DWORD TimeSamples;
char TimeUnit[32];
}Slf_FMT;
typedef struct oal_stru
{
int NO;//序号;
float dep;//测点深度;
char CheckNo[32];//探头号
char logd[32];//测井方向,
char oilorcast[32];//空间类型;
float ftime;//峰开始时间,
float etime;//峰结束时间;
float toptime;//峰位;
float breaktime;//中子爆发时间;
float prol;//谱周期;
float v;//速度;
float q;//流量,
} OAL_DATA;
typedef struct rft_stru
{
int NO;
float dep,depth,tvd;
float MG,PG,FG,SG,MG1,FST,FET,SET;
float MGG,PGG,FGG,SGG;
float Q1,DP1,K1;
float Q2,DP2,K2;
float K;
char Result[32];
float TMG,TPG,TFG,TSG,TMG1,FSTV,FETV,SETV;
} RFT_DATA;
typedef struct tagWELLSTATICINFO
{
char AreaName[40];
char OilCompanyName[40];
char WellName[40];
int APICode;
int WellType;
double XCoor,YCoor;
float As1,Bs1;
char StartDrillDate[12];
char EndDrillDate[12];
char CompleteDate[12];
char MethodCWell[16];
char BitProg[5][24];
char CasProg[5][24];
float shotCas1,Sc1sdep,Sc1Edep;
float shotCas2,Sc2sdep,Sc2Edep;
char Remark[64];
} WELL_STATIC_INFO;
typedef struct tagWELLDYNAMICINFO
{
char LogCompanyName[40];
char Operator[16];
char Date[12];
char Serial[16];
char Item[16];
char Section[16];
char MudType[12];
float WaterLoss;
float MudViscosity,MudDensity,MudResi,MudTemp;
char LogRange[24],IntRange[24];
float TempBot;
char IntProg[12];
char IntDress[16];
char Author[16];
char Remark[64];
} WELL_DYNAMIC_INFO;
typedef struct tagSlf_CORE
{
float Depth;
int oil;
int Lith;
int Color;
char Date[12];
char Tool[12];
int Number;
char LithName[32];
char Remark[64];
} Slf_CORE;
typedef struct tagSlf_TDT
{
char Name[64];
char AliasName[64];
char Unit[32];
char AliasUnit[64];
float MinValue;
float MaxValue;
DWORD TotalLogNumber;
DWORD MaxLogSamples;
char LogTimeUnit[32];
char DepthUnit[32];
char TimeUnit[32];
}Slf_TDT;
typedef struct Perforation_Table
{
int Order;//序号
float StartDepth;//起始深度
float EndDepth;//终止深度
char Zone[8];//解释层号
int Result;//解释结论号
float Thick;//层厚
float Tt;//有效厚度
char ZoneNo[64];
char Layer[64];
char Dest[64];
} SLF_SK,SLF_PERF,*LPSLF_PERF;
typedef struct
{
float Depth;
float Time;
float Value;
}TDT_DATA;
typedef struct Wis_Result_Table
{
int Order;//序号
float StartDepth;//起始深度
float EndDepth;//终止深度
char Zone[8];//解释层号
int Result;//解释结论号
float Thick;//层厚
float Tt;//有效厚度
} WIS_Result;
typedef struct Result_Table_OLD
{
int Order;//序号
float StartDepth;//起始深度
float EndDepth;//终止深度
char Zone[8];//解释层号
int Result;//解释结论号
float Thick;//层厚
float Tt;//有效厚度
float MDepth1;
float MDepth2;
float MDepth3;
float MDepth4;
float MDepth5;
float MDepth6,MDepth7,MDepth8,MDepth9,MDepth10;
float Oil,PoorOil,OilWater,WaterOil,Gas,PoorGas,GasWater,WaterGas;
char Description1[48];//地质分层
char Description2[48];//地质分层
char Description3[48];//地质分层
char Description4[48];//地质分层
char Description5[48];//地质分层
char Description6[48];//地质分层
char Description7[48];//地质分层
char Description8[48];//地质分层
char Description9[48];//地质分层
char Description10[48];//地质分层
} LAYER_DATA_OLD;
typedef struct Result_Table
{
int Order;//序号
float StartDepth;//起始深度
float EndDepth;//终止深度
char Zone[8];//解释层号
int Result;//解释结论号
float Thick;//层厚
float Tt;//有效厚度
float MDepth1;
float MDepth2;
float MDepth3;
float MDepth4;
float MDepth5;
float MDepth6,MDepth7,MDepth8,MDepth9,MDepth10;
float Oil,PoorOil,OilWater,WaterOil,Gas,PoorGas,GasWater,WaterGas;
char Description1[48];//地质分层
char Description2[48];//地质分层
char Description3[48];//地质分层
char Description4[48];//地质分层
char Description5[48];//地质分层
char Description6[48];//地质分层
char Description7[48];//地质分层
char Description8[48];//地质分层
char Description9[48];//地质分层
char Description10[48];//地质分层
float Sdep1,Edep1;
float Sdep2,Edep2;
float Sdep3,Edep3;
float Sdep4,Edep4;
float Sdep5,Edep5;
float Sdep6,Edep6;
float Sdep7,Edep7;
float Sdep8,Edep8;
float Sdep9,Edep9;
float Sdep10,Edep10;
} LAYER_DATA;
typedef struct SWall_Core_Table
{
int Order;
float Depth;
int CoreOil;
int CoreLith;
int CoreColor;
float left;
float width;
char dest[64];//OG_RESULT表纪录长度544
} WALLCORE_DATA;
typedef struct Words_Table
{
int Order;
float StartDepth;
float EndDepth;
char Words[100];
} WORDS_DATA;
typedef struct GUJING_struct{
int NO;
float SDEP,EDEP;
int RESULT;
} GUJING_DATA;
void SLFIO_EXPORT ComputeH(QString zonename,LAYER_DATA &tempRes,float h,float total=0);
void SLFIO_EXPORT ComputeTT(LAYER_DATA &m_Result,
QString &result,
QString &result1,
QString &result2,
QString &result3,
QString &result4,
QString &result5,
QString &result6,
QString &result7,
QString &result8,
QString &result9,
QString &result10
);
SLFIO_EXPORT char* GetDescription(LAYER_DATA &m_Result,char *buf);
class SLFIO_EXPORT CLogIO : public CSlfIO
{
private:
Slf_CHANNEL cpInfo;
Slf_CURVE *m_Curve;
Slf_WAVE *m_Wave;
Slf_FMT *m_Fmt;
Slf_TDT *m_Tdt;
public:
char **Slf_Info;
QStringList Slf_Menu[13];
int m_MenuNumber;
public:
CLogIO();
CLogIO(const char* szLogFileName,int FileType=0);
CLogIO(const char* szLogFileName,unsigned int nOpenFlags,int BlockLen = 1024,int MaxObjectNumber=1024, int MachineType=MACHINE_TYPE,int FileType=0);
bool Open(const char* szLogFileName,unsigned int nOpenFlags,int BlockLen=1024,int MaxObjectNumber=1024, int MachineType=MACHINE_TYPE,int FileType=0);
~CLogIO();
//protected:
int Open_Set_Table(const char *name,short Subattriber=0,int fieldcount=0,const char *FieldName=NULL,const char *FieldLength=NULL,const char *FieldType=NULL,const char *FieldResave=NULL,const char *FieldHZName=NULL,const char *FieldUnit=NULL,const char *FieldHZUnit=NULL);
int OpenOG_RESULT (const char *name);
int OpenFRAC_MODEL (const char *name);
int OpenFRAC_LEVEL (const char *name);
int OpenCORE_PHYSICS(const char *name);
int OpenFMT_MODEL (const char *name);
int OpenFMT_RESULT (const char *name);
int OpenSTATIC (const char *name);
int OpenDYNAMIC (const char *name);
int OpenCORE (const char *name);
void Close();
void SetChannelInfo(int index,Slf_CHANNEL* pInfo);
void SetSlfChannelInfo(int index,Slf_CHANNEL* pInfo);
void WriteBuf(char *buffer,int RepCode1,int CodeLen,MyDataTypeEnum &vVdl,int RepCode,DWORD count,int TimeSamples);
void SetFieldInfo(int num,char *str1,char *str2,char *str3,char *str4,Slf_TABLE_FIELD *FieldInfo,char *str5=NULL,char *FieldUnit=NULL,char *FieldHZUnit=NULL);
void GetSlfChannelInfo(int index,Slf_CHANNEL* pInfo);
void GetWisChannelInfo(int index,Slf_CHANNEL* pInfo);
void GetChannelInfo(int index,Slf_CHANNEL* pInfo);
DWORD ReadWisWave(int index, float depth, DWORD count, char* buffer);
bool ReverseDepth (int index);
bool WisMoveDepth(int index,float sdep, float edep, float delta);
bool WisCorrectDepth(int index,float delta);
bool WisExpandDepth(int index,float sdep,float edep);
int OpenWisCurve(const char* name);
int OpenSlfCurve(Slf_CURVE* pInfo,bool bFailExist=FALSE);
int OpenWisCurve(Slf_CURVE* pInfo,bool bFailExist=FALSE);
bool GetWisCurveInfo(int index,Slf_CURVE* pInfo);
int CreateWisCurve(Slf_CURVE* pInfo,bool bFailExist=FALSE);
void CloseWisCurve(int index);
DWORD ReadWisCurve(int index, float depth, DWORD count, char* buffer);
bool SlfMoveDepth(int index,float sdep, float edep, float delta);
bool SlfCorrectDepth(int index,float delta);
bool SlfExpandDepth(int index,float sdep,float edep);
int OpenSlfCurve(const char* name);
int OpenSLfCurve(Slf_CURVE* pInfo,bool bFailExist=FALSE);
bool GetSlfCurveInfo(int index,Slf_CURVE* pInfo);
int CreateSlfCurve(Slf_CURVE* pInfo,bool bFailExist=FALSE);
void CloseSlfCurve(int index);
DWORD ReadSlfCurve(int index, float depth, DWORD count, char* buffer);
bool MoveDepth(int index,float sdep, float edep, float delta);
bool CorrectDepth(int index,float delta);
bool ExpandDepth(int index,float sdep,float edep);
int OpenCurve(const char* name);
int OpenCurve(Slf_CURVE* pInfo,bool bFailExist=FALSE);
bool GetCurveInfo(int index,Slf_CURVE* pInfo);
int CreateCurve(Slf_CURVE* pInfo,bool bFailExist=FALSE);
void CloseCurve(int index);
DWORD ReadCurve(int index, float depth, DWORD count, void* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, char* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, short* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, int* buffer);
//DWORD ReadCurve(int index, float depth, DWORD count, long* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, unsigned char* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, unsigned short* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, unsigned int* buffer);
//DWORD ReadCurve(int index, float depth, DWORD count, unsigned long* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, float* buffer);
DWORD ReadCurve(int index, float depth, DWORD count, double* buffer);
DWORD WriteWisCurve(int index, float depth, DWORD count, char* buffer);
DWORD WriteSlfCurve(int index, float depth, DWORD count, char* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, char* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, void* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, short* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, int* buffer);
//DWORD WriteCurve(int index, float depth, DWORD count, long* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, unsigned char* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, unsigned short* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, unsigned int* buffer);
//DWORD WriteCurve(int index, float depth, DWORD count, unsigned long* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, float* buffer);
DWORD WriteCurve(int index, float depth, DWORD count, double* buffer);
//whp add
DWORD ReadCurveToFloatBuf(int index, float depth, DWORD count, float* buffer);
DWORD WriteCurveFromFloatBuf(int index, float depth, DWORD count, float* buffer);
DWORD ReadWaveToFloatBuf(int index, float depth, DWORD count, float* buffer);
DWORD WriteWaveFromFloatBuf(int index, float depth, DWORD count, float* buffer);
int OpenWave(const char* name);
int OpenWave(Slf_WAVE* pInfo);
int CreateWave(Slf_WAVE* pInfo,bool bFailExist=FALSE);
int OpenSlfWave(const char* name);
int OpenSlfWave(Slf_WAVE* pInfo);
int CreateSlfWave(Slf_WAVE* pInfo,bool bFailExist=FALSE);
void CloseWave(int index);
int OpenWisWave(const char* name);
int OpenWisWave(Slf_WAVE* pInfo);
int CreateWisWave(Slf_WAVE* pInfo,bool bFailExist=FALSE);
int GetTableFieldData(char *TableName,char *FiledName,char *buf,int Rec=1,bool islink=false);
int GetTableFieldData(char *TableName,char *FiledName,char *buf,float &yy,int Rec=1,bool islink=false);
bool GetWaveInfo(int index,Slf_WAVE* pInfo);
bool GetWisWaveInfo(int index,Slf_WAVE* pInfo);
bool GetSlfWaveInfo(int index,Slf_WAVE* pInfo);
DWORD ReadWave(int index, float depth, DWORD count, int* buffer);
DWORD ReadWave(int index, float depth, DWORD count, float* buffer);
DWORD ReadWave(int index, float depth, DWORD count, short* buffer);
DWORD ReadWave(int index, float depth, DWORD count, void* buffer);
DWORD ReadWave(int index, float depth, DWORD count, char* buffer);
DWORD WriteWave(int index, float depth, DWORD count, int* buffer);
DWORD WriteWave(int index, float depth, DWORD count, float* buffer);
DWORD WriteWave(int index, float depth, DWORD count, short* buffer);
DWORD WriteWave(int index, float depth, DWORD count, char* buffer);
DWORD WriteWave(int index, float depth, DWORD count, void* buffer);
int GetTableFieldData(int index,char *FieldName,char *buf,int Rec,bool islink=false);
int GetTableFieldNo(char *TableName,char *FieldName);
int GetTableFieldNo(int index,const char *FieldName);
int GetTableFieldData(int index,char *FieldName,char *OutFormat,char *buf,int Rec);
int SetTableFieldData(int index,char *FieldName,char *buf,int Rec);
int GetTableFieldData(int index,int FieldNo,float *buf,int Rec,bool islink=false);
int GetTableFieldData(int index,int FieldNo,char *buf,int Rec,bool islink=false);
int SetTableFieldData(int index,int FieldNo,char *buf,int Rec);
////////////////////////////////////////////////////////////
bool GetTDTInfo(int index,Slf_TDT* pInfo);
int OpenWisTDT(const char* name);
int OpenWisTDT(Slf_TDT* pInfo);
int CreateWisTDT(Slf_TDT* pInfo,bool bFailExist=FALSE);
DWORD GetWisTDTAllLogTime(int index,unsigned int* pLogTime,unsigned int *l=NULL);
DWORD ReadWisTDT(int index, int nPointNo, unsigned int* pLogTime, TDT_DATA* buffer);
DWORD WriteWisTDT(int index, int nPointNo, unsigned int LogTime, TDT_DATA* buffer, DWORD count);
DWORD AddWisTDT(int index, unsigned int LogTime, TDT_DATA* buffer, DWORD count);
int OpenWisFMT(const char* name);
int OpenWisFMT(Slf_FMT* pInfo);
int CreateWisFMT(Slf_FMT* pInfo,bool bFailExist=FALSE);
void CloseWisFMT(int index);
bool GetWisFMTInfo(int index,Slf_FMT* pInfo);
bool SetWisTDTDepth(int index,int Count,float* pDepth1,float* pDepth2);
DWORD GetWisFMTAllDepth(int index,float* pDepth);
DWORD ReadWisFMT(int index, int nPointNo, float* pDep, float* buffer);
DWORD WriteWisFMT(int index, int nPointNo, float dep, float* buffer, DWORD count);
DWORD AddWisFMT(int index, float dep, float* buffer, DWORD count);
void DeleteWisFMT(int index, int nPointNo, float dep);
DWORD ReadWisTDT(int index, float Depth, unsigned int* pLogTime, TDT_DATA* buffer);
bool SetWisFMTDepth(int index,int Count,float* pDepth1,float* pDepth2);
DWORD ReadWisTDT(int index, float Depth, unsigned int* pLogTime, TDT_DATA* buffer,int *n);
////////////////////////////////
int OpenFMT(const char* name);
int OpenFMT(Slf_FMT* pInfo);
int CreateFMT(Slf_FMT* pInfo,bool bFailExist=FALSE);
void CloseFMT(int index);
bool GetFMTInfo(int index,Slf_FMT* pInfo);
DWORD GetFMTAllDepth(int index,float* pDepth);
DWORD ReadFMT(int index, int nPointNo, float* pDep, float* buffer);
DWORD WriteFMT(int index, int nPointNo, float dep, float* buffer, DWORD count);
DWORD AddFMT(int index, float dep, float* buffer, DWORD count);
void DeleteFMT(int index, int nPointNo, float dep);
bool SetFMTDepth(int index,int Count,float* pDepth1,float* pDepth2);
///////////////////////////////////////////
int OpenTDT(const char* name);
int OpenTDT(Slf_TDT* pInfo);
int CreateTDT(Slf_TDT* pInfo,bool bFailExist=FALSE);
void CloseTDT(int index);
DWORD ReadTDT(int index, float Depth, unsigned int* pLogTime, TDT_DATA* buffer);
bool SetTDTDepth(int index,int Count,float* pDepth1,float* pDepth2);
DWORD ReadTDT(int index, float Depth, unsigned int* pLogTime, TDT_DATA* buffer,int *n);
DWORD GetTDTAllLogTime(int index,unsigned int* pLogTime,unsigned int *l=NULL);
DWORD ReadTDT(int index, int nPointNo, unsigned int* pLogTime, TDT_DATA* buffer);
DWORD WriteTDT(int index, int nPointNo, unsigned int LogTime, TDT_DATA* buffer, DWORD count);
DWORD AddTDT(int index, unsigned int LogTime, TDT_DATA* buffer, DWORD count);
//////////////////////////////////////
int OpenSlfFMT(const char* name);
int OpenSlfFMT(Slf_FMT* pInfo);
int CreateSlfFMT(Slf_FMT* pInfo,bool bFailExist=FALSE);
void CloseSlfFMT(int index);
bool GetSlfFMTInfo(int index,Slf_FMT* pInfo);
DWORD GetSlfFMTAllDepth(int index,float* pDepth);
DWORD ReadSlfFMT(int index, int nPointNo, float* pDep, float* buffer);
DWORD WriteSlfFMT(int index, int nPointNo, float dep, float* buffer, DWORD count);
DWORD AddSlfFMT(int index, float dep, float* buffer, DWORD count);
void DeleteSlfFMT(int index, int nPointNo, float dep);
bool SetSlfFMTDepth(int index,int Count,float* pDepth1,float* pDepth2);
/////////////////////////////////////////////
int OpenSlfTDT(const char* name);
int OpenSlfTDT(Slf_TDT* pInfo);
int CreateSlfTDT(Slf_TDT* pInfo,bool bFailExist=FALSE);
bool GetWisTDTInfo(int index,Slf_TDT* pInfo);
bool GetSlfTDTInfo(int index,Slf_TDT* pInfo);
DWORD ReadSlfTDT(int index, float Depth, unsigned int* pLogTime, TDT_DATA* buffer);
bool SetSlfTDTDepth(int index,int Count,float* pDepth1,float* pDepth2);
DWORD ReadSlfTDT(int index, float Depth, unsigned int* pLogTime, TDT_DATA* buffer,int *n);
DWORD GetSlfTDTAllLogTime(int index,unsigned int* pLogTime,unsigned int *l=NULL);
DWORD ReadSlfTDT(int index, int nPointNo, unsigned int* pLogTime, TDT_DATA* buffer);
DWORD WriteSlfTDT(int index, int nPointNo, unsigned int LogTime, TDT_DATA* buffer, DWORD count);
DWORD AddSlfTDT(int index, unsigned int LogTime, TDT_DATA* buffer, DWORD count);
bool SetTDTInfo(int index,Slf_TDT* pInfo);
bool SetSlfTDTInfo(int index,Slf_TDT* pInfo);
bool SetWisTDTInfo(int index,Slf_TDT* pInfo);
bool SetFMTInfo(int index,Slf_FMT* pInfo);
bool SetWisFMTInfo(int index,Slf_FMT* pInfo);
bool SetSlfFMTInfo(int index,Slf_FMT* pInfo);
bool SetWaveInfo(int index,Slf_WAVE* pInfo);
bool SetWisWaveInfo(int index,Slf_WAVE* pInfo);
bool SetSlfWaveInfo(int index,Slf_WAVE* pInfo);
bool SetCurveInfo(int index,Slf_CURVE* pInfo);
bool SetSlfCurveInfo(int index,Slf_CURVE* pInfo);
bool SetWisCurveInfo(int index,Slf_CURVE* pInfo);
void GetWisMessage(Slf_FILE_MESSAGE &mssage);
void SetWisMessage(Slf_FILE_MESSAGE mssage);
void GetFileMessage(Slf_FILE_MESSAGE &mssage);
void SetFileMessage(Slf_FILE_MESSAGE mssage);
//whp add
bool CorrectTableDepth(int index,float delta);
int GetTableFieldData(int index,int FieldNo,int Rec,char *value,bool islink=false);//二进制数据
void GetReservedValue(float yy,int Reserved,char *buffer,char *buf,int len,bool islink=false,bool isList=false);
int GetReservedIndex(char *buf,int Reserved);
int SetDepthOffset(int iIndex,int no1,int j,int Count,float *dep1,float *dep2,char *buf,int &IsChange);
int GetTableFieldData(int fieldcount,Slf_TABLE_FIELD *field,char *FieldName,char *InBuffer,char *buf,int reclen,bool islink=false);
bool SetSlfTDTLogTime(int index,float pDepth1,unsigned int* LogTime);
int GetTableFieldData(int fieldcount,Slf_TABLE_FIELD *field,char *FieldName,char *InBuffer,char *buf,float &yy,int reclen,bool islink=false);
int GetTableFieldData(int index,int FieldNo,char *buf,float &yy,int Rec,bool islink=false);
int GetTableFieldData(int index,char *FieldName,char *buf,float &yy,int Rec,bool islink=false);
};
#endif