コード例 #1
0
ファイル: Serialize.cpp プロジェクト: zidane168/AutoPlay
CMarkup XMLSerialized::OpenFile(){
	CMarkup xml;
//nếu file chưa tồn  tại thì kiểm tra trong listRole
	bool exist =PathFileExists(sFileName);
	if(!exist){
		int begin = sFileName.ReverseFind('\\')+1;
		int end = sFileName.ReverseFind(L'.');
		CString roleName = sFileName.Mid(begin,end-begin);
		if(roleName.Left(4)=="Role")
			return NULL;
		CString szLstRole = L"Character\\ListRole.xml";
		ConvertFileName(szLstRole);
		//nếu không tồn tại file listRole thì tạo note root
		if(!PathFileExists(szLstRole)){
			xml.AddElem(L"ListRoles");			
		}
		else{
			xml.Load(szLstRole);
			xml.FindElem(L"ListRoles");
		}
		
		xml.IntoElem();
		while(xml.FindElem(L"Role")){
			if(xml.GetAttrib(L"ID")==roleName){
				sFileName=L"Character\\"+xml.GetAttrib(L"File");
				ConvertFileName(sFileName);
				exist =true;
				break;
			}
			
		}
		//nếu trong listRole không có thì lưu trong listRole và tạo file
		if(!exist){
			time_t timer;
			time(&timer);
			CTime t = timer;
			sFileName=t.Format(L"Role%d%m%Y%H%M%S.xml");
			xml.AddElem(L"Role");
			xml.AddAttrib(L"ID",roleName);
			xml.AddAttrib(L"File",sFileName);
			xml.Save(szLstRole);
			sFileName=L"Character\\"+sFileName;
			ConvertFileName(sFileName);
			return NULL;
		}
		
	}		
	xml.Load(sFileName);
	if(xml.GetDoc().GetLength()>0)
		return xml;
	return NULL;
}
コード例 #2
0
ファイル: TxParamString.cpp プロジェクト: tianyx/TxUIProject
BOOL WriteMarkupString(CMarkup& markDoc, ST_MARKITEM& itemIn)
{	
	if (!itemIn.strKey.IsEmpty() && itemIn.strKey.Compare(TEXT(".")) != 0)
	{
		markDoc.AddElem(itemIn.strKey, itemIn.strVal);		
	}
	MAPKEYATTRIB ::iterator itb = itemIn.mapAttrib.begin();
	MAPKEYATTRIB ::iterator ite = itemIn.mapAttrib.end();
	for (; itb != ite; ++itb)
	{
		markDoc.AddAttrib(itb->first, itb->second);
	}

	MAPKEYVALUE& mapchild = itemIn.mapChildItem;
	MAPKEYVALUE::iterator itkvb = mapchild.begin();
	MAPKEYVALUE::iterator itkve = mapchild.end();
	for (; itkvb != itkve; ++itkvb)
	{
		markDoc.IntoElem();
		WriteMarkupString(markDoc, itkvb->second);
		markDoc.OutOfElem();
	}

	return TRUE;
}
コード例 #3
0
ファイル: CRegisterIdMessage.cpp プロジェクト: ray-x/SMonitor
bool CRegisterIdMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_REGISTERID_REQ");
	xml.OutOfElem();
	xml.AddChildElem("Info");
	xml.IntoElem();
	xml.AddAttrib("Id", MessageDataMediator->m_strNewId.toStdString().c_str());
	//xml.AddAttrib("Id", "23423");
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);
	netMessage.msgLen = xml.GetDoc().length();
	return true;
}
コード例 #4
0
ファイル: CRequestXmlMessage.cpp プロジェクト: ray-x/SMonitor
void CRequestXmlMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_REQUESTXML_RSP");
	xml.OutOfElem();
	xml.AddChildElem("Result");
	xml.IntoElem();
	xml.AddAttrib("ErrorCode", 0);
	xml.AddAttrib("Value", QString::fromLocal8Bit("成功").toStdString().c_str());
	xml.OutOfElem();
	xml.AddChildElem("SvrInfo");
	xml.IntoElem();
	xml.AddAttrib("UpdateXmlUrl", MessageDataMediator->m_strUpdateXMLUrl.toStdString().c_str());
	xml.AddAttrib("HelpInfoXmlUrl", MessageDataMediator->m_strHelpXMLUrl.toStdString().c_str());
	xml.AddAttrib("VersionCheckFileUrl", MessageDataMediator->m_strClientVersionUrl.toStdString().c_str());
	xml.AddAttrib("TextMode", MessageDataMediator->m_bTextMode ? "1" : "0");
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);
	netMessage.msgLen = xml.GetDoc().length();
}
コード例 #5
0
ファイル: TestMarkup.cpp プロジェクト: GisKook/Gis
bool TestMarkup::WriteTextFile()
{
	CMarkup markup;
	GKString strDoc(_U("<abc>Gis_Kook</abc>"));
	strDoc+=_U("\n");
	markup.SetDoc(strDoc);
	markup.AddAttrib(_U("map"), 1);
	markup.AddElem(_U("dddd"),_U("dd") );

	markup.WriteTextFile(_U("c:/Test.xml"), markup.GetDoc());

	return TRUE;	
}
コード例 #6
0
ファイル: xml.cpp プロジェクト: MR-algorithms/weekends2015
void CXmlElement::Save(CMarkup& xml)
{
	xml.AddElem(_name, _value);
	for (unsigned int i = 0; i < _attributes.size(); ++i)
	{
		xml.AddAttrib(_attributes[i].first, _attributes[i].second);
	}
	xml.IntoElem();
	for (unsigned int i = 0; i < _children.size(); ++i)
	{
		_children[i]->Save(xml);
	}
	xml.OutOfElem();
}
コード例 #7
0
ファイル: CDistributeMessage.cpp プロジェクト: ray-x/SMonitor
void CDistributeMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_DISTRIBUTEMSG_REQ");
	xml.OutOfElem();
	xml.AddChildElem("Result");
	xml.IntoElem();
	xml.AddAttrib("ErrorCode", 0);
	xml.AddAttrib("Value", QString::fromLocal8Bit("³É¹¦").toStdString().c_str());
	xml.OutOfElem();
	xml.AddChildElem("Info");
	xml.IntoElem();
	xml.AddAttrib("Msg", MessageDataMediator->m_strDistributeMsg.toStdString().c_str());
	xml.AddAttrib("Time", MessageDataMediator->m_strDistributeTime.toStdString().c_str());
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);
	netMessage.msgLen = xml.GetDoc().length();
}
コード例 #8
0
void CSoftInstallMessage::packedSendMessage(NetMessage& netMessage)
{
	CMarkup xml;
	xml.SetDoc("<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
	xml.AddElem("Message");
	xml.AddChildElem("Header");
	xml.IntoElem();
	xml.AddAttrib("MsgType", "EMSG_SOFTINSTALL_RSP");
	xml.OutOfElem();
	xml.AddChildElem("Result");
	xml.IntoElem();
	xml.AddAttrib("ErrorCode", 0);
	xml.AddAttrib("Value", QString::fromLocal8Bit(m_bAddSuccess ? "添加成功" : "添加失败,XML无法解析").toStdString().c_str());
	xml.OutOfElem();
	xml.AddChildElem("Info");
	xml.IntoElem(); 
	xml.AddAttrib("Name", m_strName.toStdString().c_str());  //中文问题测试 yhb
	xml.AddAttrib("Version", m_strVersion.toStdString().c_str());
	xml.OutOfElem();

	netMessage.msgBuffer = packXml(&xml);;
	netMessage.msgLen = xml.GetDoc().length();
}
コード例 #9
0
ファイル: CliMgr.cpp プロジェクト: lubing521/important-files
	void CCliMgr::GetSysService()
	{
		SC_HANDLE schManager = OpenSCManager(NULL, NULL, SERVICE_QUERY_STATUS);
		if (schManager == NULL)
		{
			DWORD dwError = GetLastError();
			_com_error Error(dwError);
			m_pLogger->WriteLog(LM_INFO, TEXT("GetSysService-OpenSCManager Error:%d:%s"), dwError, Error.ErrorMessage());
			return ;
		}

		DWORD dwSize = 0, dwCount = 0;
		LPENUM_SERVICE_STATUS st = (LPENUM_SERVICE_STATUS)LocalAlloc(LPTR, 64*1024);
		LPQUERY_SERVICE_CONFIG sc = (LPQUERY_SERVICE_CONFIG)LocalAlloc(LPTR, 4 * 1024);
		if (!EnumServicesStatus(schManager, SERVICE_TYPE_ALL, SERVICE_ACTIVE, st, 1024*64, &dwSize, &dwCount, NULL))
		{
			DWORD dwError = GetLastError();
			_com_error Error(dwError);
			m_pLogger->WriteLog(LM_INFO, TEXT("EnumServicesStatus Error:%d:%s"), dwError, Error.ErrorMessage());
		}

		CMarkup xml;
		xml.SetDoc("<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n");
		xml.AddElem("ServiceLst");
		xml.IntoElem();
		
		for (DWORD idx=0; idx<dwCount; idx++)
		{
			SC_HANDLE hService = ::OpenService(schManager,st[idx].lpServiceName,SERVICE_QUERY_CONFIG);
			if(hService)
			{
				DWORD dwSize = 0;
				::QueryServiceConfig(hService, sc, 4 * 1024, &dwSize);
				CloseServiceHandle(hService);
			}
			if (st[idx].ServiceStatus.dwCurrentState == SERVICE_RUNNING)
			{
				TCHAR buf[MAX_PATH] = {0};
				_stprintf(buf, TEXT("%s  %s  %s)\r\n"), st[idx].lpServiceName, sc->lpBinaryPathName, st[idx].lpDisplayName);

				string strProcName = ProcessImagePath(sc->lpBinaryPathName);
				xml.AddElem("Service");
				xml.AddAttrib("Name",		 st[idx].lpServiceName);
				xml.AddAttrib("Application", strProcName.c_str());
				xml.AddAttrib("DisplayName", st[idx].lpDisplayName);
				m_pLogger->WriteLog(LM_INFO, buf);
			}
		}
		xml.OutOfElem();
		string data=xml.GetDoc();
		char *pData = NULL;
		int  nSize = data.size() + 1024;
		char* buf= new char[nSize];
		_packageheader* pheader = (_packageheader*)buf;
		InitPackage(pheader, CMD_GAME_CLIENTTOCON);
		CPackageHelper out(buf);
		out.pushDWORD(Ctrl_ViewSviInfo);
		out.pushString(data.c_str(), data.size());
		pheader->Length = out.GetOffset();
		if (!ExecCmd(buf, pheader->Length, pData, nSize, false))
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewSviInfo Fail.");			
		else
		{
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewSviInfo Success.");
			CoTaskMemFree(pData);
		}
		delete []buf;
		LocalFree(st);
		LocalFree(sc);
		CloseServiceHandle(schManager);
	}
コード例 #10
0
ファイル: CliMgr.cpp プロジェクト: lubing521/important-files
	void CCliMgr::GetSysProcess()
	{
		DWORD aProcesses[1024] = {0}, cbNeeded = 0, cProcesses = 0, MemSize = 0;
		if (!EnumProcesses( aProcesses, sizeof(aProcesses), &cbNeeded ))
		{
			DWORD dwError = GetLastError();
			_com_error Error(dwError);
			m_pLogger->WriteLog(LM_INFO, TEXT("GetSysProcess (EnumProcess) Error:%d:%s"), dwError, Error.ErrorMessage());
			return;
		}
		cProcesses = cbNeeded / sizeof(DWORD);
		m_pLogger->WriteLog(LM_INFO, TEXT("Process Num:%d"), cProcesses);
		CMarkup xml;
		xml.SetDoc("<?xml version=\"1.0\" encoding=\"gb2312\"?>\r\n");
		xml.AddElem("ProcessLst");
		xml.IntoElem();
		for (DWORD idx=0; idx<cProcesses; idx++)
		{
			TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>");
			HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ, FALSE, aProcesses[idx]);
			if (NULL == hProcess)
				continue;
			else
			{
				if (0 == GetModuleFileNameEx(hProcess, NULL, szProcessName, MAX_PATH))
				{
					CloseHandle( hProcess );
					continue;
				}
				PROCESS_MEMORY_COUNTERS pmc = {0};
				pmc.cb = sizeof(PROCESS_MEMORY_COUNTERS);
				if ( ::GetProcessMemoryInfo(hProcess, &pmc, sizeof(pmc)))
				{
					MemSize = pmc.WorkingSetSize;
				}
				CloseHandle( hProcess );
			}
			string strProcName = ProcessImagePath(szProcessName);		
 			TCHAR buf[MAX_PATH] = {0};
 			_stprintf(buf, TEXT("%s  %d  (PID: %u)\r\n"), szProcessName,MemSize, aProcesses[idx]);
			xml.AddElem("Process");
			xml.AddAttrib("Name",	strProcName);    
			xml.AddAttrib("Pid",	aProcesses[idx]);    
			xml.AddAttrib("Memory",	MemSize);				
			m_pLogger->WriteLog(LM_INFO, buf);
		}
		xml.OutOfElem();
		string data=xml.GetDoc(); 
		char *pData = NULL;
		int  nSize = data.size() +1024;
		char* buf= new char[nSize];
		_packageheader* pheader = (_packageheader*)buf;
		InitPackage(pheader, CMD_GAME_CLIENTTOCON);
		CPackageHelper out(buf);
		out.pushDWORD(Ctrl_ViewProcInfo);
		out.pushString(data.c_str(), data.size());
		pheader->Length = out.GetOffset();

		if (!ExecCmd(buf, pheader->Length, pData, nSize,false))
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewProcInfo Fail.");			
		else
		{
			m_pLogger->WriteLog(LM_INFO, "Report Ctrl_ViewProcInfo Success.");
			CoTaskMemFree(pData);
		}
		delete []buf;
	}
コード例 #11
0
// 初始化配置文件
int CVCheckerClsConfig::fInitConfig(void)
{
	if (m_strConfigFile == _T(""))
		return CONFIG_ERR_FIND_FILE;

	CVCheckerClsGlobal clsGlobal;

	CMarkup xml;
	xml.SetDoc(_T("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"));//添加XML头	

	//获取硬件系统信息
	xml.AddElem(_T("System_Info"));
	xml.AddAttrib(_T("Resolution"),clsGlobal.fGetScreenResolution());
	xml.AddAttrib(_T("Language"),_T("zh-cn"));
	xml.OutOfElem();	

	//======800X480分辨率环境下的设置Begin======
	xml.AddChildElem(_T("480X272"));
	xml.IntoElem();
	xml.AddChildElem(_T("Defualt_Size"),430);
	xml.OutOfElem();	
	//======平台环境下的设置End======

	//======多语言设置Begin======
	xml.AddChildElem(_T("Language"));
	xml.IntoElem();	

	xml.AddChildElem(_T("IDOK"));
	xml.IntoElem();
	xml.AddAttrib(_T("zh-cn"),_T("确定"));
	xml.AddAttrib(_T("en-us "),_T("Ok"));
	xml.OutOfElem();

	xml.AddChildElem(_T("IDCANCEL"));
	xml.IntoElem();
	xml.AddAttrib(_T("zh-cn"),_T("取消"));
	xml.AddAttrib(_T("en-us "),_T("Cancel"));
	xml.OutOfElem();

	xml.OutOfElem();
	//======多语言设置End======

	//======主界面设置Begin======
	xml.AddChildElem(_T("Main"));
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));
	//======主界面设置End======

	//======怠速界面设置Begin======
	xml.AddChildElem(_T("Idling"));
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));

	xml.AddChildElem(_T("LeftUp"));					//左上数据信息
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));
	xml.AddAttrib(_T("Text"),_T(""));
	xml.AddAttrib(_T("DefaultData"),_T("0"));
	xml.OutOfElem();

	xml.AddChildElem(_T("Up"));						//左边数据信息
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));
	xml.AddAttrib(_T("Text"),_T(""));
	xml.AddAttrib(_T("DefaultData"),_T("0"));
	xml.OutOfElem();

	xml.AddChildElem(_T("LeftDown"));				//左下数据信息
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));
	xml.AddAttrib(_T("Text"),_T(""));
	xml.AddAttrib(_T("DefaultData"),_T("0"));
	xml.OutOfElem();

	xml.AddChildElem(_T("RightUp"));				//右上数据信息
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));
	xml.AddAttrib(_T("Text"),_T(""));
	xml.AddAttrib(_T("DefaultData"),_T("0"));
	xml.OutOfElem();

	xml.AddChildElem(_T("Right"));					//右边数据信息
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));
	xml.AddAttrib(_T("Text"),_T(""));
	xml.AddAttrib(_T("DefaultData"),_T("0"));
	xml.OutOfElem();

	xml.AddChildElem(_T("RightDown"));				//右下数据信息
	xml.IntoElem();
	xml.AddAttrib(_T("BackImage"),_T(""));
	xml.AddAttrib(_T("Text"),_T(""));
	xml.AddAttrib(_T("DefaultData"),_T("0"));
	xml.OutOfElem();

	xml.OutOfElem();
	//======怠速界面设置End======

	xml.Save(m_strConfigFile);
	return 0;
}
コード例 #12
0
ファイル: Serialize.cpp プロジェクト: zidane168/AutoPlay
bool XMLSerialized::Serialize(){
	CMarkup* xml = new CMarkup();
	if(xml==NULL){
		return false;
	}
	std::map<int,DATA*>::const_iterator item;
	for(item=  m_mapping.begin(); item != m_mapping.end(); item ++){
		DATA* data = item->second;
		if(data->_tagType == TagType::Root){
			xml->AddElem( data->_tagName);
			continue;
		}
		if(data->_tagType == TagType::Element){
			xml->ResetPos();			
			if(FindPath(data->_parent,xml)){
				xml->AddElem( data->_tagName);
				if(data->_dataType!= DataType::None){
					CString result;
					switch(data->_dataType){
						case DataType::String:
							xml->SetData(*(CString*)data->_value);
						break;
						case DataType::Int:
							xml->SetData(*(int*)data->_value);
						break;
						case DataType::Bool:
							xml->SetData((int)*(bool*)data->_value);
						break;
						case DataType::ByteArray:
							ByteArrayToString(result,L"|",(byte*)data->_value);
							xml->SetData(result);
						break;
						case DataType::IntArray:
							IntArrayToString(result,L"|",(int*)data->_value);
							xml->SetData(result);
						break;
					}
				}
				continue;
			}
		}
		if(data->_tagType == TagType::Attribute){
			if(FindPath(data->_parent,xml)){
				xml->OutOfElem();
				CString result;
				
				switch(data->_dataType){
					case DataType::String:
						xml->AddAttrib(data->_tagName,*(CString*)data->_value);
					break;
					case DataType::Int:
						xml->AddAttrib(data->_tagName,*(int*)data->_value);
					break;
					case DataType::Bool:
						xml->AddAttrib(data->_tagName,(int)*(bool*)data->_value);
					break;
					case DataType::ByteArray:
						ByteArrayToString(result,L"|",(byte*)data->_value);
						xml->AddAttrib(data->_tagName,result);
					break;
					case DataType::IntArray:
						IntArrayToString(result,L"|",(int*)data->_value);
						xml->AddAttrib(data->_tagName,result);
					break;
				}
			}
		}		
	}
	xml->Save(sFileName);
	delete xml;
	xml=NULL;
	return true;
}