|
|
|
|
|
#pragma once
|
|
|
|
|
|
#ifndef AFX_EXT_CLASS
|
|
|
|
|
|
#define AFX_EXT_CLASS Q_DECL_IMPORT
|
|
|
|
|
|
#endif
|
|
|
|
|
|
//#include "SplitPath.h"
|
|
|
|
|
|
namespace GBase
|
|
|
|
|
|
{
|
|
|
|
|
|
//Ϊ<><CEAA><EFBFBD>Զ<EFBFBD><D4B6>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>
|
|
|
|
|
|
class AFX_EXT_CLASS CStringBuffer
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CStringBuffer(LPCTSTR strData = NULL);
|
|
|
|
|
|
virtual ~CStringBuffer();
|
|
|
|
|
|
|
|
|
|
|
|
void SetData(CString strData); //<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>
|
|
|
|
|
|
void AddData(CString strData); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD>
|
|
|
|
|
|
void AddData(char cAdd, int nCount); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4>У<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>չ'\0'<27><><EFBFBD><EFBFBD>
|
|
|
|
|
|
void AddData(char* pAdd, int nNum); //<2F><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
void Attach(char* pBuffer, int nLength);
|
|
|
|
|
|
char* Detach(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ڲ<EFBFBD><DAB2>ÿգ<C3BF><D5A3><EFBFBD><EFBFBD>ӵ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ҫʹ<D2AA><CAB9>deleteɾ<65><C9BE>
|
|
|
|
|
|
void Clear();
|
|
|
|
|
|
|
|
|
|
|
|
char* GetData() { return m_pData; }
|
|
|
|
|
|
int GetLength() { return m_nNum; }
|
|
|
|
|
|
operator char* (void) const { return m_pData; }
|
|
|
|
|
|
char& operator[](int idx) { return m_pData[idx]; }
|
|
|
|
|
|
char operator[](int idx) const { return m_pData[idx]; }
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Իس<D4BB><D8B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>еĿ<D0B5>ʼ
|
|
|
|
|
|
int GetNextLine(CString& strLine, int nBeginIndex = 0);
|
|
|
|
|
|
CString Mid(int nBegin, int nCount = -1);
|
|
|
|
|
|
|
|
|
|
|
|
int Create(int nNum);
|
|
|
|
|
|
int AppendCreate(int nAddNum);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
int m_nNum;
|
|
|
|
|
|
char* m_pData;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>CFile<6C><65>
|
|
|
|
|
|
class AFX_EXT_CLASS IOFile
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
IOFile(CFile* pFile = NULL, BOOL bDelete = FALSE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual ~IOFile(void);
|
|
|
|
|
|
|
|
|
|
|
|
BOOL GetStatus(CFileStatus& rStatus) const;
|
|
|
|
|
|
|
|
|
|
|
|
virtual CString GetFileName() const;
|
|
|
|
|
|
virtual CString GetFileTitle() const;
|
|
|
|
|
|
virtual CString GetFilePath() const;
|
|
|
|
|
|
virtual void SetFilePath(LPCTSTR lpszNewName);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void Close(void);
|
|
|
|
|
|
#ifndef _QT_VERSION
|
|
|
|
|
|
virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL);
|
|
|
|
|
|
virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags, CAtlTransactionManager* pTM, CFileException* pError);
|
|
|
|
|
|
#else
|
|
|
|
|
|
virtual BOOL Open(LPCTSTR lpszFileName, UINT nOpenFlags);
|
|
|
|
|
|
#endif //_QT_VERSION
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual UINT Read(void* lpBuf, UINT nCount);
|
|
|
|
|
|
virtual void Write(const void* lpBuf, UINT nCount);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void SeekToBegin();
|
|
|
|
|
|
virtual ULONGLONG SeekToEnd();
|
|
|
|
|
|
virtual ULONGLONG Seek(LONGLONG lOff, UINT nFrom);
|
|
|
|
|
|
virtual ULONGLONG GetPosition();
|
|
|
|
|
|
virtual ULONGLONG GetLength();
|
|
|
|
|
|
virtual void SetLength(ULONGLONG dwNewLen);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>á<EFBFBD><C3A1><EFBFBD>ȡ<EFBFBD>ļ<EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
|
//virtual void SetFile(CFile* pFile) { m_pFile=pFile; }
|
|
|
|
|
|
virtual CFile* GetFile() { return m_pFile; }
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
//ASCII<49><49><EFBFBD>ļ<EFBFBD><C4BC>Ķ<EFBFBD>д
|
|
|
|
|
|
int ReadString(CString& str);
|
|
|
|
|
|
int GetString(CString& str);
|
|
|
|
|
|
int ReadString(char* str, int nMaxLength); //<2F><>ȡһ<C8A1><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
|
int GetString(char* str, int nMaxLength); //<2F><>ȡһ<C8A1><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կո<D4BF><D5B8><EFBFBD><EFBFBD>س<EFBFBD>Ϊ<EFBFBD><CEAA>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
int ReadLine() { return ReadString(); } //<2F><>ȡһ<C8A1><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ⳤ<EFBFBD>ȣ<EFBFBD><C8A3>ڲ<EFBFBD><DAB2>Զ<EFBFBD><D4B6><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>棩
|
|
|
|
|
|
int ReadString(); //<2F><>ȡһ<C8A1><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ⳤ<EFBFBD>ȣ<EFBFBD><C8A3>ڲ<EFBFBD><DAB2>Զ<EFBFBD><D4B6><EFBFBD>չ<EFBFBD><D5B9><EFBFBD>棩
|
|
|
|
|
|
int GetString(); //<2F><>ȡһ<C8A1><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Կո<D4BF><D5B8><EFBFBD><EFBFBD>س<EFBFBD>Ϊ<EFBFBD><CEAA>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
char* GetTempString(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
int GetTempStringLength(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>鳤<EFBFBD><E9B3A4>
|
|
|
|
|
|
void ZeroTempString(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|
|
|
|
|
CStringBuffer& GetTempBuffer() { return m_tempBuffer; }
|
|
|
|
|
|
|
|
|
|
|
|
void WriteChar(LPCTSTR lpstr, int nTimes = 1); //д<><D0B4>nTimes<65><73><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
|
void WriteLine(LPCTSTR lpstr, int nTabNum); //<2F><><EFBFBD><EFBFBD>nTabNum<75><6D>tab<61><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>дһ<D0B4><D2BB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
|
void WriteLine(CString str); //дһ<D0B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD>س<EFBFBD>),<2C><>WriteString<6E><67>WriteReturn<72><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteString(CString str, int nTabNum = 0); //дһ<D0B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteString(double value, int n = 6); //дһ<D0B4><D2BB>˫<EFBFBD><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteString(long value); //дһ<D0B4><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void WriteReturn(); //дһ<D0B4><D2BB><EFBFBD>س<EFBFBD>
|
|
|
|
|
|
void WriteXY(double x, double y, char cSplit = ','); //дX,Y<><59><EFBFBD><EFBFBD>
|
|
|
|
|
|
int ReadXY(double& x, double& y, char cSplit = ',');
|
|
|
|
|
|
void WriteXY(double x, double y, double z, char cSplit = ',');
|
|
|
|
|
|
int ReadXY(double& x, double& y, double& z, char cSplit = ',');
|
|
|
|
|
|
void WriteArray(int num, double* pValue, char cSplit = ' ');
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鵽<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>У<EFBFBD><D0A3>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>ȱʡ<C8B1>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
void PrintXYZ(char* string, double *v, int num, int digits, char split = ',');
|
|
|
|
|
|
void PrintXYZ(CString& result, double *v, int num, int digits, char split = ',');
|
|
|
|
|
|
void PrintXYZ(char* result, double *v, int num, char split = ',');
|
|
|
|
|
|
void PrintXYZ(CString& result, double *v, int num, char split = ',');
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ٱ<EFBFBD><D9B1><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
BOOL WriteFile(LPCTSTR lpSaveFileName, void* pBuffer, DWORD nBufferSize);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dfb<66>ļ<EFBFBD><C4BC><EFBFBD>д
|
|
|
|
|
|
void SerializeString(CArchive& ar, CString& str, const short& ver);
|
|
|
|
|
|
void WriteElementType(CArchive& ar, int nType, const short& ver); //дԪ<D0B4><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(int <20><> short)<29><>
|
|
|
|
|
|
void ReadElementType(CArchive& ar, int &nType, const short& ver); //<2F><>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(int <20><> short)<29><>
|
|
|
|
|
|
|
|
|
|
|
|
////<2F><>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>
|
|
|
|
|
|
//int DFD_WriteMemoryBlock(CDFile& fw, BYTE* lpData, DWORD nDataLength, LPCTSTR strType);
|
|
|
|
|
|
//BYTE* DFD_ReadMemoryBlock(CDFile& fr, DWORD& nOutDataLength, CString& strType);
|
|
|
|
|
|
|
|
|
|
|
|
////xml<6D><6C>ʽд
|
|
|
|
|
|
//void WriteDML(CRect8& rect,int nTabNum, CString key=_T(""));
|
|
|
|
|
|
//void WriteDML_Head_Version();
|
|
|
|
|
|
//void WriteDML_Head_Xmlns();
|
|
|
|
|
|
//void WriteDML_Head_MapType(int nTabNum, CString strMapType);
|
|
|
|
|
|
//void WriteDML_Tail_MapType(int nTabNum, CString strMapType);
|
|
|
|
|
|
//void WriteDML_Tail(short ver);
|
|
|
|
|
|
//void WritePCG(const CRect8& rect,int nTabNum, CString key=_T(""));
|
|
|
|
|
|
//void WritePCG_Head_Version();
|
|
|
|
|
|
//void WritePCG_Head_Xmlns();
|
|
|
|
|
|
//void WritePCG_Head_MapType(int nTabNum, CString strMapType);
|
|
|
|
|
|
//void WritePCG_Tail_MapType(int nTabNum, CString strMapType);
|
|
|
|
|
|
//void WritePCG_Tail(short ver);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
|
void ConvertGBKToUTF8(CString& strGBK, bool checkCodec = true);
|
|
|
|
|
|
void SetCodeType(DWORD nType);
|
|
|
|
|
|
DWORD GetCodeType();
|
|
|
|
|
|
|
|
|
|
|
|
//xml<6D><6C>ʽ<EFBFBD>汾<EFBFBD><E6B1BE>
|
|
|
|
|
|
void SetXmlVersion(double dVer);
|
|
|
|
|
|
double GetXmlVersion();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
void SetErrorInfo(LPCTSTR lpszErrorInfo);
|
|
|
|
|
|
CString GetErrorInfo(void);
|
|
|
|
|
|
|
|
|
|
|
|
enum ECodeType
|
|
|
|
|
|
{
|
|
|
|
|
|
codeGB2312 = 0x00000000, //gb2312<31><32><EFBFBD>룬<EFBFBD><EBA3AC>CODE_GB2312<31><32>ͬ
|
|
|
|
|
|
codeUTF8 = 0x00000001 //utf-8<><38><EFBFBD>룬<EFBFBD><EBA3AC>CODE_UTF8<46><38>ͬ
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CFile* m_pFile;
|
|
|
|
|
|
BOOL m_bDelete; //<2F>Ƿ<EFBFBD>ɾ<EFBFBD><C9BE>m_pFile
|
|
|
|
|
|
double m_dXmlVersion; //<2F>汾<EFBFBD><E6B1BE>
|
|
|
|
|
|
DWORD m_nCodeType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
CString m_strErrorInfo; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
|
|
|
|
|
|
//Ϊ<><CEAA><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>ⳤ<EFBFBD>ȵ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>䳤<EFBFBD><E4B3A4>
|
|
|
|
|
|
CStringBuffer m_tempBuffer; //ÿ<><C3BF><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>, <20><>ʼ<EFBFBD><CABC>Ϊ2048<34><38>
|
|
|
|
|
|
};
|
|
|
|
|
|
};
|
|
|
|
|
|
using namespace GBase;
|