window遍历INI

来源:互联网 发布:linux搭建websocekt 编辑:程序博客网 时间:2024/06/03 18:42
void EnumIniFile(LPCTSTR pFilePath, CString strKey,map<CString,CString>& map_Key)
{

// TODO: Add your control notification handler code here
TCHAR strAppNameTemp[4096];//所有AppName的返回值
TCHAR strKeyNameTemp[4096];//对应每个AppName的所有KeyName的返回值
TCHAR strReturnTemp[4096];//返回值
DWORD dwKeyNameSize;//对应每个AppName的所有KeyName的总长度
//所有AppName的总长度
DWORD dwAppNameSize = GetPrivateProfileString(NULL,NULL,NULL,strAppNameTemp,4096,pFilePath);
if(dwAppNameSize>0)
{
TCHAR *pAppName = new TCHAR[dwAppNameSize];
int nAppNameLen=0;  //每个AppName的长度
for(int i = 0;i<dwAppNameSize;i++)
{
pAppName[nAppNameLen++]=strAppNameTemp[i];
if(strAppNameTemp[i]==0)
{
OutputDebugString(pAppName);
OutputDebugString(_T("/r/n"));
dwKeyNameSize = GetPrivateProfileString(pAppName,NULL,NULL,strKeyNameTemp,4096,pFilePath);
if(dwAppNameSize>0)
{
TCHAR *pKeyName = new TCHAR[dwKeyNameSize];
int nKeyNameLen=0;    //每个KeyName的长度
for(int j = 0;j<dwKeyNameSize;j++)
{
pKeyName[nKeyNameLen++]=strKeyNameTemp[j];
if(strKeyNameTemp[j]==0)
{
OutputDebugString(pKeyName);
OutputDebugString(_T("="));
if(GetPrivateProfileString(pAppName,pKeyName,NULL,strReturnTemp,4096,pFilePath))
{
                                OutputDebugString(strReturnTemp);
}
CString strKeyName(pKeyName);
map_Key.insert(make_pair(strKeyName,strReturnTemp));
int isize=map_Key.size();
if (isize==187)
{
OutputDebugString(_T("/r/n"));
}
memset(pKeyName,0,dwKeyNameSize);
nKeyNameLen=0;
OutputDebugString(_T("/r/n"));
}
}
delete[]pKeyName;
}
memset(pAppName,0,dwAppNameSize);
nAppNameLen=0;
}
}
delete[]pAppName;
}   
}
原创粉丝点击