📄 dbfileext.cpp
字号:
// DBFileExt.cpp: implementation of the CDBFileExt class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DBFileExt.h"
#include "AfxDB.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
#include "DBFile.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDBFileExt::CDBFileExt()
{
}
CDBFileExt::~CDBFileExt()
{
}
int CDBFileExt::AddInfo(char *info,int len) // 添加信息区
{
//modify by zy 20020730
m_info.Info=NewInfo(len+1);
memcpy(m_info.Info,info,len);
m_info.InfoLen = len;
return WriteFileInfo();
}
int CDBFileExt::AddTableList(char *table,int num) // 添加表区
{
char *pTok;
int i ;
m_fieldhd.FieldNum = num;
m_fieldname = NewFieldTag(num); // 申请一个空间
i=0;
pTok=strtok(table,"|");
sprintf( m_fieldname[i].FieldName,"%s",pTok);
m_fieldname[i].FieldType =0;
i++;
while(pTok) {
pTok=strtok(NULL,"|");
if (pTok ==NULL) break;
sprintf( m_fieldname[i].FieldName,"%s",pTok);
m_fieldname[i].FieldType =0;
i++;
if (i>=num) break;
}
//表空间申请
m_fielddata = NewFieldDataTag(num);
return WriteField();
}
void CDBFileExt::SetTableName(int fieldno, char *tablename,int type)
{
sprintf( m_fieldname[fieldno].FieldName,"%s",tablename);
m_fieldname[fieldno].FieldType = type;
return ;
}
void CDBFileExt::SetTableSize(int size)
{
m_fieldname = NewFieldTag(size); // 申请一个空间
m_fielddata = NewFieldDataTag(size);
}
int CDBFileExt::AddTable() // 写入表名区
{ return WriteField(); }
/// int AddTableData(char *table,int len); // 添加域名
int CDBFileExt::AddRecord() // 添加一条记录
{
int ret = WriteRecord();
//表空间申请
m_fielddata = NewFieldDataTag(m_fieldhd.FieldNum );
return ret;
}
int CDBFileExt::SetFieldData(int fieldno,char *buf,int len) //添加记录中每个域的数据
{
m_fielddata[fieldno].DataBuff = NewDataBuff(fieldno,len);
m_fielddata[fieldno].DataSize = len;
memcpy(m_fielddata[fieldno].DataBuff,buf,len);
return 0;
}
int CDBFileExt::AddIndex()
{ CreateIndex(); WriteIndex(); return 0; }
int CDBFileExt::GetCount(){ return m_datahd.DataNum; }
int CDBFileExt::GetFieldNum(){ return m_fieldhd.FieldNum; }
char *CDBFileExt::GetInfo(){ return m_info.Info; }
char *CDBFileExt::GetFieldName(int fieldid)
{return m_fieldname[fieldid].FieldName;}
char *CDBFileExt::GetFieldData(int fieldid)
{
if (m_fieldname[fieldid].FieldType==DBVT_BINARY) {
sprintf( m_StrInfo,"<Bin: %d>",m_fielddata[fieldid].DataSize);
return m_StrInfo;
}
return (char *)m_fielddata[fieldid].DataBuff;
}
char *CDBFileExt::GetFieldDataBin(int fieldid,int *len)
{
*len = m_fielddata[fieldid].DataSize;
return (char *)m_fielddata[fieldid].DataBuff;
}
int CDBFileExt::GetRecord(int i)
{
m_curindex = i; return ReadRecord();
}
void CDBFileExt::SetFieldMask(int field, BOOL flag)
{ m_fieldmask[field]=flag; }
int CDBFileExt::IsDBFormat(char *buf)
{
if (buf==NULL) return 0;
if ((buf[0]!='E')||(buf[1]!='L')) return 0;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -