#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;
}
遍历ini下所有节点值
最新推荐文章于 2023-03-29 19:35:33 发布