龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

用VC读取和分析格式化文本配置文件(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
void CDataTxt::DelNote()//去掉注释,分成定义段和表格段 { CString szt=""; char cc,ccp=0; int i; for(i=0;im_nDataSize;i++) { cc=m_cbuf[i]; if(cc != /){ szt+=cc;ccp=cc; } else//cc==/ { if(im_

void CDataTxt::DelNote()//去掉注释,分成定义段和表格段
{
CString szt="";
char cc,ccp=0;
int i;
for(i=0;i<m_nDataSize;i++)
{
cc=m_cbuf[i];
if(cc != '/'){ szt+=cc;ccp=cc; }
else//cc=='/'
{
if(i<m_nDataSize)
{
if(m_cbuf[i+1]=='/')//注释开始
{
while((i<m_nDataSize)&&(m_cbuf[i]!=0x0d)) i++;
if(m_cbuf[i]==0x0d) i--;
ccp=0;
}
else{szt+=cc; ccp=cc; }
}
}
}
m_nDataSize=szt.GetLength();
sprintf(m_cbuf,"%s",szt);
int ns=szt.Find("#DEFINE_BEGIN",0);
int ne=szt.Find("#DEFINE_END",0);
if((ns==-1)||(ne==-1)) return;
ns+=13;
m_szDefine="";
for(i=ns;i<ne;i++) m_szDefine+=szt[i];
m_nDefineLen=m_szDefine.GetLength();
ns=szt.Find("#TABLE_BEGIN",0);
ne=szt.Find("#TABLE_END",0);
ns+=12;
if((ns==-1)||(ne==-1)) return;
m_szTable="";
for(i=ns;i<ne;i++) m_szTable+=szt[i];
m_nTableLen=m_szTable.GetLength();
FormatTable();//规格化表格
}

BOOL CDataTxt::GetDefine(LPCTSTR lpszName,CString &szVal)//获取定义
{
CString szName=lpszName;
if(szName.IsEmpty()) return FALSE;
int nLen=szName.GetLength();
int ns=m_szDefine.Find(lpszName,0);
if(ns==-1) return FALSE;
szVal="";
int i=ns+nLen;
BOOL bStartCopy=FALSE;
char cc;
while(i<m_nDefineLen)
{
cc=m_szDefine[i];
if((cc!=0x0D)&&(cc!=0x0A)&&(cc!=' ')&&(cc!=0x20))
{
if(bStartCopy==FALSE) bStartCopy=TRUE;
szVal+=m_szDefine[i];
}
else{if(bStartCopy) break;} i++;
}
return TRUE;
}

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!
按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接