|
@@ -234,12 +234,25 @@ bool TCLCommand::ParseCommandFromString(std::string str, CommandParam &cmdParam)
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
-bool TCLCommand::ParseCommandsFromXml(const TCHAR* file_name, std::vector<CommandParam>& vtCommandParams)
|
|
|
|
|
|
+bool TCLCommand::ParseCommandsFromXml(std::string strFileOrString, std::vector<CommandParam>& vtCommandParams, BOOL bFile)
|
|
{
|
|
{
|
|
tinyxml2::XMLDocument doc;
|
|
tinyxml2::XMLDocument doc;
|
|
- if (tinyxml2::XML_SUCCESS != doc.LoadFile(file_name) ) {
|
|
|
|
- return false;
|
|
|
|
|
|
+ if ( bFile )
|
|
|
|
+ {
|
|
|
|
+ // 从文件中加载;
|
|
|
|
+ if (tinyxml2::XML_SUCCESS != doc.LoadFile(strFileOrString.c_str()) )
|
|
|
|
+ {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ // 从文本中加载;
|
|
|
|
+ if (tinyxml2::XML_SUCCESS != doc.Parse(strFileOrString.c_str(), strFileOrString.size()) )
|
|
|
|
+ {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
tinyxml2::XMLElement *pXmlRoot = NULL;
|
|
tinyxml2::XMLElement *pXmlRoot = NULL;
|
|
if ((pXmlRoot = doc.RootElement()) == NULL)
|
|
if ((pXmlRoot = doc.RootElement()) == NULL)
|
|
@@ -678,12 +691,15 @@ void TCLCommand::SetInternalCMDParams(DWORD dwResouceID)
|
|
std::string data;
|
|
std::string data;
|
|
if ( utils::GetResourceData(dwResouceID, _T("BIN"), data) )
|
|
if ( utils::GetResourceData(dwResouceID, _T("BIN"), data) )
|
|
{
|
|
{
|
|
- ParseCommandsFromString(data, m_vtInternalCMDParams);
|
|
|
|
|
|
+ ParseCommandsFromXml(data, m_vtInternalCMDParams, FALSE);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void TCLCommand::SetExternalCMDParams(LPCTSTR lpFileName)
|
|
void TCLCommand::SetExternalCMDParams(LPCTSTR lpFileName)
|
|
{
|
|
{
|
|
m_vtExternalCMDParams.clear();
|
|
m_vtExternalCMDParams.clear();
|
|
- ParseCommandsFromFile(lpFileName, m_vtExternalCMDParams);
|
|
|
|
|
|
+ if ( _tcsstr(lpFileName, _T(".xml")) )
|
|
|
|
+ ParseCommandsFromXml(lpFileName, m_vtExternalCMDParams);
|
|
|
|
+ else
|
|
|
|
+ ParseCommandsFromFile(lpFileName, m_vtExternalCMDParams);
|
|
}
|
|
}
|