用VC读取和分析格式化文本配置文件(2)
#define TABLE_MAXCOL 5 //含索引ID列
typedef struct{
int nID;
char s[TABLE_MAXCOL-1][64];
}TAG_TABLEREC,*LPTABLEREC;
class CDataTxt
{
public:
CDataTxt();
~CDataTxt();
CString m_szPath;//配置文件全路经名
BOOL Read();//读入文件
BOOL GetDefine(LPCTSTR lpszName,CString &szVal);//获取定义
//{{TABLE
TAG_TABLEREC m_Table[TABLE_MAXROW];
int m_nRows;
//}}
private:
char m_cbuf[1024*48];
int m_nBufSize;//=1024*48;
int m_nDataSize;
CString m_szDefine;//定义段
int m_nDefineLen;
CString m_szTable;//表格段
int m_nTableLen;
void DelNote();//去掉注释
void FormatTable(void);//规格化表格
};
CDataTxt::CDataTxt()
{
int i;
m_szPath="SQTL.txt";
m_nBufSize=1024*48;
m_nDataSize=0;
m_nDefineLen=0;
m_nTableLen=0;
for(i=0;i<m_nBufSize;i++)
m_cbuf[i]=0;
ZeroMemory(&m_Table,sizeof(m_Table));
m_nRows=0;
}
CDataTxt::~CDataTxt()
{
}
BOOL CDataTxt::Read()
{
CFile fl;
if(!fl.Open(m_szPath,CFile::modeRead|CFile::typeBinary))
return FALSE;
DWORD dwl=fl.GetLength();
if(dwl > (DWORD)m_nBufSize)
dwl=(DWORD)m_nBufSize;
m_nDataSize=(int)(fl.Read(m_cbuf,dwl));
fl.Close();
DelNote();//去掉注释
return TRUE;
}
- 上一篇:经典编程:DLL地狱及其解决方案
- 下一篇:VC各类之间的调用函数总结