示例#1
0
//---------------------------------------------------------------------------
// 函数:	CreateIniLink
// 功能:	创建Ini链表
// 参数:	pBuffer		缓存
//			nBufLen		长度
// 返回:	void
//---------------------------------------------------------------------------
void KIniFile::CreateIniLink(LPVOID pBuffer, LONG nBufLen)
{
	LPSTR lpBuffer = (LPSTR)pBuffer;
	LPSTR lpString = NULL;
	LPSTR lpValue  = NULL;
	char  szSection[32] = "[MAIN]";

	m_Offset = 0;
	while (m_Offset < nBufLen)
	{
		lpString = &lpBuffer[m_Offset];
		if (!ReadLine(lpBuffer, nBufLen))
			continue;

		if (*lpString == ';')
		{
			continue;
		}
		
		if (*lpString == '#')
		{
			continue;
		}

		if (*lpString == '[')
		{
			g_StrCpyLen(szSection, lpString, sizeof(szSection));
			continue;
		}

		lpValue = SplitKeyValue(lpString);
		SetKeyValue(szSection, lpString, lpValue);
	}
}
示例#2
0
文件: IniFile.cpp 项目: github188/yol
//---------------------------------------------------------------------------
// 函数:	CreateIniLink
// 功能:	创建Ini链表
// 参数:	pBuffer		缓存
//			nBufLen		长度
//---------------------------------------------------------------------------
void QIniFileImpl::CreateIniLink(void* pBuffer, long nBufLen)
{
	char* lpBuffer = (char*)pBuffer;
	char* lpString = NULL;
	char* lpValue  = NULL;
	char  szSection[64] = "[MAIN]";

	m_Offset = 0;
	while (m_Offset < nBufLen)
	{
		lpString = &lpBuffer[m_Offset];
		if (!ReadLine(lpBuffer, nBufLen))
			break;
		if (IsKeyChar(*lpString))
		{
			lpValue = SplitKeyValue(lpString);
			if (lpValue)
				SetKeyValue(szSection, lpString, lpValue);
		}
		else if (*lpString == '[')
		{
			QStrCpyLen(szSection, lpString, sizeof(szSection));
		}
	}
}