遍历ini下所有节点值

#define  MY_PATH  4096
BOOL Cxxx:TerminatePro()
{
TCHAR  chSectionNames[MY_PATH]={0};  //所有节名组成的字符数组
TCHAR *pSectionName; //保存找到的某个节名字符串的首地址
int i;       //i指向数组chSectionNames的某个位置,从0开始,顺序后移
int j=0;      //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
int count=0;      //统计节的个数
    TCHAR  chReturnSectionNames[MY_PATH]={0}; 
::GetPrivateProfileSectionNames(chSectionNames,MY_PATH,GetConfigFile());
for(i=0;i<MY_PATH;i++,j++)
{
if(chSectionNames[0]=='\0')
break;       //如果第一个字符就是0,则说明ini中一个节也没有
if(chSectionNames[i]=='\0')
{
    pSectionName = &chSectionNames[i-j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,就是一个节名的首地址
    j=-1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量赋成-1是因为节名字符串的最后一个字符0是终止符,


//把读出来的值加入listbox


GetPrivateProfileSection(pSectionName,chReturnSectionNames,MY_PATH,GetConfigFile());
//LPCTSTR pstrData = _tcschr(chReturnSectionNames, _T('\0'));
int nPos = 0;
for(int n = 0; n < MY_PATH; n++)
{
if (chReturnSectionNames[n] == '\0')
{


TCHAR chTmp[256]={0}; 
if (nPos == 0) {
_tcscpy(chTmp,chReturnSectionNames); 
}
else {
_tcscpy(chTmp,&chReturnSectionNames[nPos + 1]); 
}


LPCTSTR pstrData = _tcschr(chTmp, _T('='));
//TerminateProcessEx(CString(pstrData+1));  do sth;
nPos = n;
}
}


if(chSectionNames[i+1]==0)
{
break;      //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止
} 
}	
}   
return TRUE;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值