遍历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;
}

发布了150 篇原创文章 · 获赞 42 · 访问量 33万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览