⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbfengine.h

📁 股票助手的源代码
💻 H
字号:
#ifndef _DBF_H
#define _DBF_H

#define ASCEND  0
#define DESCEND 1

struct strField
{
	TCHAR m_pfieldName[11];
	TCHAR m_fieldType;
	UINT m_fieldLen;
	UINT m_decCount;//XIAO SHU's counts
};

class CDbFile: public CObject
{
public:
public:
	CDbFile();
	~CDbFile();
	bool OpenDbf(LPTSTR pfileName);
	bool CloseDbf();
	
	BOOL InitHeadStructure();
	void GetFieldInfo();
	CString CharToWideChar(PBYTE,DWORD);
	int WideCharToChar(CString,char*);
	DWORD ReadFieldStr(UINT nRecNumber,UINT nFieldNum,PBYTE fieldBuffers);
    DWORD SetFieldStr(UINT nRecNumber,UINT nFieldNum,PBYTE fieldBuffers);
	DWORD AppendRecord();

	DWORD WriteAllDataToFile();
	DWORD SetFieldStr(UINT nRecNumber,UINT nFieldNum,PBYTE fieldBuffers,DWORD dwLen);
	DWORD AppendBlankRecordInMem();
	DWORD DeleteRecordInMem(int num);
	DWORD SetRecordCountInMem(int num);

	WORD GetFieldCount();//return field count.
	DWORD GetRecordCount();
	WORD  GetHeadLen();
	WORD  GetRecordLen();
	PBYTE GetAllDataPointer();
	strField* GetFieldInfoArray();
	BOOL DeleteAllDataPointer();
	BOOL DeleteFieldInfoArrayPointer();
	BYTE GetB(HANDLE hFile,DWORD offset);//return a byte from file's offset
	WORD GetW(HANDLE hFile,DWORD offset,bool DIRECT);//return a word from file's offset
	DWORD GetDW(HANDLE hFile,DWORD offset,bool DIRECT);//return a double word from file's offset
	
	bool OpenFpt(LPTSTR pfileName);
	bool CloseFpt();
	//DWORD GetMemoFieldFromDbfFile(UINT nRecNumber,UINT nFieldNum,PBYTE fieldBuffers);
	DWORD GetFptDataUnitLen();
	DWORD GetMemoFieldCommentLen(DWORD dwOffsetBlockNum);	
	DWORD GetMemoFieldOffsetNumFromDbfFile(UINT nRecNumber,UINT nFieldNum,PBYTE fieldBuffers);
	DWORD InitGetMemField(UINT nRecNumber,UINT nFieldNum,PBYTE fieldBuffers);//return len for GetMemFieldStr()
	DWORD GetMemoFieldFromDbf(UINT nRecNumber,PBYTE fieldBuffers);

DWORD SetFieldOffset(UINT nFieldNum);
DWORD SetFieldLen(UINT nFieldNum);
DWORD GetFieldStr(UINT nRecNumber,PBYTE fieldBuffers);

DWORD InitGetMemField(UINT nRecNumber,PBYTE fieldBuffers);
DWORD GetMemFieldStr(PBYTE memoFieldBuffers,DWORD len);
DWORD GetFptFileSize();
DWORD GetMemFieldStr(UINT nRecNumber,PBYTE fieldBuffers);

DWORD GetMemFieldSize(PBYTE allFptDataBuf,UINT nRecNumber);
DWORD GetMemFieldStrFromMemory(PBYTE allFptDataBuf,UINT nRecNumber,PBYTE fieldBuffers,DWORD n);
BOOL ReadFptToMemory(PBYTE);
HANDLE GetFptHandle();
//////////////////////////////////////////
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
HANDLE  OpenFile(LPTSTR pfileName);
BOOL CloseFile(HANDLE  hFile);
BOOL GetRecordCount(LPBYTE pAllData,DWORD& recordCount);
BOOL GetRecordLen(LPBYTE pAllData,DWORD& recordLen);
BOOL GetHeadLen(LPBYTE pAllData,DWORD& headLen);
BOOL GetFieldCount(DWORD headLen,DWORD& fieldCount);
BOOL GetFileSize(HANDLE  hFile,DWORD& len);
BOOL ReadAllData(HANDLE  hFile,LPBYTE pAllData,DWORD len,DWORD dwFileLen);
void GetFieldInfo(LPBYTE pAllData,DWORD fieldCount,strField* pFieldInfoArray);
DWORD ReadFieldStr(LPBYTE pAllData,strField* pFieldInfoArray,
				DWORD headLen,DWORD recordLen,
				UINT nRecNumber,UINT nFieldNum,PBYTE fieldBuffers);


//CString GetInstallDir();
CString GetExeDir();
};
#endif
/////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -