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

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

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
void CDataTxt::FormatTable()//规格化表格 { int i=0; char cc; int nRow=0; CString szLine="",szID="",szVal="",szCol=""; int nCol=0; while(im_nTableLen) { cc=m_szTable[i]; if((cc==0x0A)||(cc==)) cc=

void CDataTxt::FormatTable()//规格化表格
{
int i=0;
char cc;
int nRow=0;
CString szLine="",szID="",szVal="",szCol="";
int nCol=0;
while(i<m_nTableLen)
{
cc=m_szTable[i];
if((cc==0x0A)||(cc==' ')) cc=0x20;
if(cc==0X0D)//处理一行
{
szLine.TrimLeft(); szLine.TrimRight();
if(!szLine.IsEmpty())
{
int nl=szLine.GetLength();
int j;
char c;
szID="";
for(j=0;j<nl;j++)//取szID
{
c=szLine[j];
if(c==0x20)
break;
szID+=c;
}
m_Table[nRow].nID=atoi(szID);
BOOL bStart;
bStart=FALSE;
szVal="";
while(j<nl)//取szCols
{
c=szLine[j];
if((bStart==FALSE)&&(c==0x20)) j++;
else{bStart=TRUE;szVal+=c;j++;}
}
szVal.TrimLeft();szVal.TrimRight();
nCol=0; nl=szVal.GetLength();
j=0;szCol="";
while(j<nl)
{
c=szVal[j];
if(c==',')
{
if(szCol.IsEmpty()) break;
else
{
if(nCol < TABLE_MAXCOL-1)
{
if(szCol.GetLength() <64)
sprintf(&(m_Table[nRow].s[nCol][0]),"%s",szCol);
nCol++; TRACE("szCol=%s ",szCol);
}
}
szCol="";
}
else szCol+=c;
j++;
}
if(!szCol.IsEmpty())
{
if(nCol < TABLE_MAXCOL-1)
{
if(szCol.GetLength() <64)
sprintf(m_Table[nRow].s[nCol],"%s",szCol);
nCol++; TRACE("szCol=%s ",szCol);
}
}

精彩图集

赞助商链接