////////////////////////////////////////////////////////////////////////////// //文件 CurveBinary.h //主要功能: // 基础类库 //程序编写: 2005-12-07 ///////////////////////////////////////////////////////////////////////////// #pragma once #include #include "curve.h" #define CB_CURVE 1 #define CB_POINT 2 #define CB_LAYER 3 #define CB_NAME 4 //////////////////////////////////////对*.dfx文件进行读写/////////////////////////////////////////// class AFX_EXT_CLASS CCurveBinary { protected: int WriteCurveX(__int32 num, double* x, double* y); int WritePoint(__int32 num, double* x, double* y); int GetCurve(void* pList,CCurve &cu); int iFile; char* m_class; public: CCurveBinary(void); ~CCurveBinary(void); BOOL Open(char* pstrFileName, int IsWrite); //IsWrite=1为新建打开写,=2为追加方式写 BOOL IsOpen(void); void Close(void); int GetFileHandle(void); static int ToText(CString strBinaryName, CString strDfdName); //转换二进制曲线数据到DFD格式文件中 CString GetCurrentLayer(void); int Seek(char * pNameLayer); //定位到指定层名处 int GetNextLayer(); //获得下一个层名位置,返回 CB_LAYER 为层名 int GetLayers(CStringList& sList); //获得文件中所有层名 int ReplaceLayer(char* pstrFileName, char* pOldLayer, char* pNewLayer); int DeleteLayer(char* pstrFileName, char* pNameLayer); //删除一个层位,当文件为空时将自动删除该文件 int WriteClass(char* pNameLayer); //写一个层名 int WriteClass(int nFileHandle, char* pNameLayer); int WriteCurve(CCurve &cu); //写一条曲线 int Read(CCurve &cu); //m_cross中为指针列表,该指针的前8个字节为交点值,后面的字节为该交点的层名 void Cross(char* pstrFileName, int x0, CPtrList& m_cross); //计算所有交点 int CrossOne(int x0, CPtrList& m_cross); //计算一个交点, };