⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parameterlist.cpp

📁 SQLBig5BugTool 宽字符操作问题
💻 CPP
字号:
// ParameterList.cpp: implementation of the CParameterList class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"

#include "ParameterList.h"
#include <algorithm>

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CParameterList::CParameterList()
{
	
}

CParameterList::~CParameterList()
{
	
}


const char* CParameterList::GetParamValueText(const char* pszName)
{
	CSingleLock lck(&m_csLock,TRUE);
		
	STD_MAP_STRING_2_STRING::iterator itr=m_ParamText.find(pszName);
	if(itr==m_ParamText.end())
	{
		assert(false);
		return "";
	};
			
	return (*itr).second.c_str();
};

LONG CParameterList::GetParamValueLONG(const char* pszName)
{
	CSingleLock lck(&m_csLock,TRUE);
	
	STD_MAP_STRING_2_LONG::iterator itr=m_ParamLONG.find(pszName);
	if(itr==m_ParamLONG.end())
	{
		assert(false);
		return 0;
	};
	
	return (*itr).second;
};

ULONG CParameterList::GetParamValueULONG(const char* pszName)
{
	CSingleLock lck(&m_csLock,TRUE);
	
	STD_MAP_STRING_2_ULONG::iterator itr=m_ParamULONG.find(pszName);
	if(itr==m_ParamULONG.end())
	{
		assert(false);
		return 0;
	};
	
	return (*itr).second;
};

void CParameterList::SetParamValueText(const char* pszName,const char*pszValue)
{
	CSingleLock lck(&m_csLock,TRUE);
	
	m_ParamText[pszName]=pszValue;

	if(m_ParamNameList.end()==std::find(m_ParamNameList.begin(),m_ParamNameList.end(),pszName))
	{
		m_ParamNameList.push_back(pszName);
	}
};

void CParameterList::SetParamValueLONG(const char* pszName,LONG lValue)
{
	CSingleLock lck(&m_csLock,TRUE);
	
	m_ParamLONG[pszName]=lValue;
	
	if(m_ParamNameList.end()==std::find(m_ParamNameList.begin(),m_ParamNameList.end(),pszName))
	{
		m_ParamNameList.push_back(pszName);
	}
};

void CParameterList::SetParamValueULONG(const char* pszName,ULONG ulValue)
{
	CSingleLock lck(&m_csLock,TRUE);
	
	m_ParamULONG[pszName]=ulValue;
	
	if(m_ParamNameList.end()==std::find(m_ParamNameList.begin(),m_ParamNameList.end(),pszName))
	{
		m_ParamNameList.push_back(pszName);
	}
};

ULONG CParameterList::GetParamCount()
{
	CSingleLock lck(&m_csLock,TRUE);
	
	return m_ParamNameList.size();
};

void CParameterList::GetAllParamAsText(
									   std::string& strAllTxt,
									   const char* pszTokenBetweenParams,
									   const bool  bGetType
									   )
{
	strAllTxt="";
	
	CSingleLock lck(&m_csLock,TRUE);
	
	std::string	strName;
	std::string	strType;
	std::string	strValue;
	
	for(long l=0;l<m_ParamNameList.size();l++)
	{
		if(!strAllTxt.empty())
		{
			strAllTxt+=pszTokenBetweenParams;
		}
		GetParamValueAsText(
			l,
			strName,
			strType,
			strValue
			);

		strAllTxt+=strName;
		
		
		if(bGetType)
		{
			strAllTxt+="("+strType+")";
		}
		strAllTxt+=":";
		
		strAllTxt+=strValue;
	}
}

void CParameterList::GetParamValueAsText(
										 const ULONG	ulIndex,
										 std::string&	strName,
										 std::string&	strType,
										 std::string&	strValue
										 )
{
	strName="";
	strType="";
	strValue="";
		
	CSingleLock lck(&m_csLock,TRUE);
	
	if(ulIndex>=GetParamCount())
	{
		return ;
	}
	strName=m_ParamNameList[ulIndex];
	
	//
	STD_MAP_STRING_2_STRING::iterator itr=m_ParamText.find(strName);
	if(m_ParamText.end()!=itr)
	{
		strType=TYPE_TEXT;
		strValue=(*itr).second;
		return;
	}
	
	STD_MAP_STRING_2_ULONG::iterator   itr3=m_ParamULONG.find(strName);
	if(m_ParamULONG.end()!=itr3)
	{
		strType=TYPE_ULONG;
		char szTxt[256]={0,};
		_snprintf(szTxt,sizeof(szTxt),"%u",(*itr).second);
		
		strValue=szTxt;
		return;
	}

	STD_MAP_STRING_2_LONG::iterator   itr2=m_ParamLONG.find(strName);
	if(m_ParamLONG.end()!=itr2)
	{
		strType=TYPE_LONG;
		char szTxt[256]={0,};
		_snprintf(szTxt,sizeof(szTxt),"%d",(*itr).second);

		strValue=szTxt;
		return;
	}

	assert(false);
};


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -