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

📄 bag.h

📁 ADO查看数据库工具的原码
💻 H
字号:
// Bag.h: interface for the CBag class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_BAG_H__B9624083_5526_4586_A24B_4976B5C35050__INCLUDED_)
#define AFX_BAG_H__B9624083_5526_4586_A24B_4976B5C35050__INCLUDED_

#include "DBFileExt.h"	// Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define BAG_TABLE_SIZE			3		//表长

#define BAG_ID_POS				0		//ID位置
#define BAG_FILENAME_POS		1		//文件名位置
#define BAG_BUFFER_POS			2		//buffer位置


#define BAG_MODE_READ			CDBFile::DB_MODE_READ		//写入
#define BAG_MODE_CREATE			CDBFile::DB_MODE_CREATE
#define BAG_MODE_APPEND			CDBFile::DB_MODE_APPEND



//打开方式
//包一条记录
class CBagTag
{
public:
	CString strID;					//ID_POS=0
	CString  strFileName;			//FILENAME_POS=1
	BYTE *buffer;					//BUFFER_POS=2
	DWORD nBufferSize;
	int nType;
public:

	CBagTag()
	{
		strID = "";			strFileName = "";	buffer = NULL;
		nBufferSize = 0;	nType = -1;
		m_pBuffer=NULL;
	};
~CBagTag()
{
	if (m_pBuffer!=NULL) delete m_pBuffer;
}
	int GetFileName(char *fn){
		FILE *fp;
		if ((fp=fopen(fn,"rb"))==NULL) return 0;
		fseek(fp,0,SEEK_END);
		int len = ftell(fp);
		if (m_pBuffer!=NULL) delete m_pBuffer;
		fseek(fp,0,SEEK_SET);
		m_pBuffer=new char [len];
		fread(m_pBuffer,1,len,fp);
		fclose(fp);
		buffer = (BYTE *)m_pBuffer;
		nBufferSize = len;
		return len;
	}
private:
	char *m_pBuffer;
};

typedef struct {
	char  ID[8];
	DWORD pos;
}BagTagList;

//包一条记录

class CBag  
{
private:
	BagTagList  *m_pBagTagList;
	BOOL m_OpenFlag;
public:
	CDBFileExt m_DbFile;
	
	int Open(char *bagfn,int mode);
	int OpenMem(char *buf,int len,int mode);
	void Close();

	int SeekID(CString idstr);

	int Add(CBag *pBag);       //加一个包
	int Add(CBagTag *pTag);    //加一条记录

	int GetData(int pos,CBagTag  *pdata,int *flag=NULL);
	
	
	int CreateID();

private:
	int ChangePkgFmt(CBagTag *pData, BOOL bSave);
public:
	//获取数据模式  TRUE 取数据。 FLASE 读数据
	void SetGetMode(BOOL flag);
	char * GetBagMem(int *len);
	BOOL IsOpen();
	int GetBagCount();
	CBag();
	virtual ~CBag();
};

#endif // !defined(AFX_BAG_H__B9624083_5526_4586_A24B_4976B5C35050__INCLUDED_)

⌨️ 快捷键说明

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