C++ ini配置文件的遍历

void GetWholeINI()
{
	CString g_UnitName[20]; //节点名称
	CString g_UnitID[20]; //节点编号
	CStringArray g_Section;//全局变量;分割好的section
	int counts=0;
	int g_UnitNumber=0;   //全局变量:节点总数
	char strBuffer[48];   //临时缓冲区,用于接收字符串
	int saveHead=0;
	//获取第一个节点名
	DWORD nChar;
	GetSections(g_Section);
	for(int i=0;i<g_Section.GetSize();i++)
	{
		while(1)
		{
			//保存节点标识
			nChar = GetPrivateProfileString(g_Section.GetAt(i),NULL,"",strBuffer,sizeof(strBuffer),iniFullPath);
			g_UnitID[g_UnitNumber] = strBuffer;
			//保存节点名称
			nChar = GetPrivateProfileString(g_Section.GetAt(i),g_UnitID[g_UnitNumber],"",strBuffer,sizeof(strBuffer),iniFullPath);
			g_UnitName[g_UnitNumber] = strBuffer;		
			if(nChar==0)
			{
				break;
			}
			//将此节点从配置文件中删除
			WritePrivateProfileString(g_Section.GetAt(i),g_UnitID[g_UnitNumber],NULL,iniFullPath);
			//保存节点个数
			//读不到信息,表示已经遍历整个INI文件,则退出循环
			g_UnitNumber ++;
			counts++;
		}		
		//将信息重新写入配置文件		
		for(int j = saveHead; j < g_UnitNumber; j++)
		{
			WritePrivateProfileString(g_Section.GetAt(i),g_UnitID[j],g_UnitName[j],iniFullPath);
			UINT pumpID = atoi(g_UnitID[j]);
			int len = g_UnitName[j].Find(":");
			gPump[pumpID].szName = g_UnitName[j].Mid(0,len);
			gPump[pumpID].szMN = g_UnitName[j].Mid(len+1,14);		
		}
		saveHead=g_UnitNumber;
		counts=0;
	}	
}
int GetSections(CStringArray &arrSection)
{
	int iLength=0;
	int   iPos=0;   
	//TCHAR   chSectionNames[256]={0};   //总的提出来的字符串 
	//TCHAR   chSection[12]={0};   //存放一个段名。 
	char   chSectionNames[256]={0};   //总的提出来的字符串 
	char   chSection[24]={0};   //存放一个段名。 
	DWORD nChar=GetPrivateProfileSectionNames(chSectionNames,sizeof(chSectionNames),iniFullPath);	
	//以下循环,截断到两个连续的0 
	for(int i=0;i<nChar;i++) 
	{ 
		if(chSectionNames[i]==0)
		{
			arrSection.Add(chSection); 
			if   (chSectionNames[i]==chSectionNames[i+1])
			{
                break; 
			}
			memset(chSection,0,iLength); 
			iPos=0; 
			iLength=0;
		}
		else
		{
			chSection[iPos++]=chSectionNames[i]; 
			iLength++;
		}
	} 
	return   (int)arrSection.GetSize(); 
}

阅读更多
想对作者说点什么?

博主推荐

换一批

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