📄 bag.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 + -