tinyxml在wince下的用法
来源:互联网 发布:常用的哈希算法 编辑:程序博客网 时间:2024/06/16 21:40
1.//包含XML解析类文件头
#include "tinyxml.h"
2.定义变量
TiXmlDocument * m_pXml;
bool m_bLoadXml;
3.读函数
BOOL CAlarmDlg::ReadCFGFile()
{
m_pXml=new TiXmlDocument();
BOOL flag=FALSE;
#ifdef MIPS
m_bLoadXml=m_pXml->LoadFile("//Hive//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Hive//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
SetFileAttributes(sz_xmlfilename,result|FILE_ATTRIBUTE_READONLY);
#else
m_bLoadXml=m_pXml->LoadFile("//Storage Card//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Storage Card//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
SetFileAttributes(sz_xmlfilename,result|FILE_ATTRIBUTE_READONLY);
#endif
CString temp1,temp2,temp3;
if(m_bLoadXml)
{
TiXmlElement* rootElement = m_pXml->RootElement(); //<Alarm>
TiXmlElement* alarmElement = rootElement->FirstChildElement(); //<ALARM>
alarmElement=alarmElement->FirstChildElement();//子一级<ALARM>
//获取服务器地址
while(alarmElement)
{
//继续轮询下一个<ALARM>
m_szaAlarmTime.Add(alarmElement->GetText());
alarmElement=alarmElement->NextSiblingElement();
}
flag=TRUE;
}
//回收内存
if(m_pXml!=NULL)
{
delete m_pXml;
m_pXml=NULL;
}
return flag;
}
4.写函数
BOOL CSetTimeDlg::WriteCFGFile()
{
m_pXml=new TiXmlDocument();
BOOL flag=FALSE;
#ifdef MIPS
m_bLoadXml=m_pXml->LoadFile("//Hive//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Hive//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
result&=~FILE_ATTRIBUTE_READONLY;
SetFileAttributes(sz_xmlfilename,result);
#else
m_bLoadXml=m_pXml->LoadFile("//Storage Card//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Storage Card//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
result&=~FILE_ATTRIBUTE_READONLY;
SetFileAttributes(sz_xmlfilename,result);
#endif
CString temp1,temp2,temp3;
int count;
if(m_bLoadXml)
{
TiXmlElement* rootElement = m_pXml->RootElement(); //<MAIN>
TiXmlElement* alarmElement = rootElement->FirstChildElement(); //<ALARM>
alarmElement=alarmElement->FirstChildElement();//子一级<ALARM>
count=0;
//获取服务器地址
if(m_balarmcountisadd==FALSE)
{
while(alarmElement)
{
//继续轮询下一个<ALARM>
if(count<m_ialrmtimeindex)
{
count+=1;
alarmElement=alarmElement->NextSiblingElement();
}
else
{
int m_count=0;
alarmElement->Clear();
CString temp;
//小时
m_count=_wtoi(m_szhour);
if(m_count<10)
m_szhour.Format(L"0%d",m_count);
else
m_szhour.Format(L"%d",m_count);
temp=m_szhour;
//冒号
temp+=L":";
//分钟
m_count=_wtoi(m_szminute);
if(m_count<10)
m_szminute.Format(L"0%d",m_count);
else
m_szminute.Format(L"%d",m_count);
temp+=m_szminute;
//Unicode转为ASCIIm码
DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,temp.GetBuffer(temp.GetLength()),-1,NULL,0,NULL,FALSE);
temp.ReleaseBuffer();
char *psText;
psText = new char[dwNum];
WideCharToMultiByte (CP_OEMCP,NULL,temp.GetBuffer(temp.GetLength()),-1,psText,dwNum,NULL,FALSE);
temp.ReleaseBuffer();
TiXmlText *pValue = new TiXmlText(psText);
alarmElement->LinkEndChild(pValue);
delete []psText;
#ifdef MIPS
m_pXml->SaveFile("//Hive//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Hive//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
SetFileAttributes(sz_xmlfilename,result|FILE_ATTRIBUTE_READONLY);
#else
m_pXml->SaveFile("//Storage Card//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Storage Card//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
SetFileAttributes(sz_xmlfilename,result|FILE_ATTRIBUTE_READONLY);
#endif
flag=TRUE;
break;
}
}
}
else
{
//while(alarmElement)
TiXmlElement* rootElement = m_pXml->RootElement(); //<MAIN>
TiXmlElement* alarmElement = rootElement->FirstChildElement(); //<ALARM>
int m_count=0;
CString temp;
//小时
m_count=_wtoi(m_szhour);
if(m_count<10)
m_szhour.Format(L"0%d",m_count);
else
m_szhour.Format(L"%d",m_count);
temp=m_szhour;
//冒号
temp+=L":";
//分钟
m_count=_wtoi(m_szminute);
if(m_count<10)
m_szminute.Format(L"0%d",m_count);
else
m_szminute.Format(L"%d",m_count);
temp+=m_szminute;
//Unicode转为ASCIIm码
DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,temp.GetBuffer(temp.GetLength()),-1,NULL,0,NULL,FALSE);
temp.ReleaseBuffer();
char *psText;
psText = new char[dwNum];
WideCharToMultiByte (CP_OEMCP,NULL,temp.GetBuffer(temp.GetLength()),-1,psText,dwNum,NULL,FALSE);
temp.ReleaseBuffer();
TiXmlElement* alarm = new TiXmlElement("ALARM");
TiXmlText *pValue = new TiXmlText(psText);
alarm->LinkEndChild(pValue);
alarmElement->LinkEndChild(alarm);
delete []psText;
#ifdef MIPS
m_pXml->SaveFile("//Hive//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Hive//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
SetFileAttributes(sz_xmlfilename,result|FILE_ATTRIBUTE_READONLY);
#else
m_pXml->SaveFile("//Storage Card//configfiles//Alarm//Alarm.xml");
CString sz_xmlfilename=L"//Storage Card//configfiles//Alarm//Alarm.xml";
DWORD result=GetFileAttributes(sz_xmlfilename);
SetFileAttributes(sz_xmlfilename,result|FILE_ATTRIBUTE_READONLY);
#endif
flag=TRUE;
}
}
//回收内存
if(m_pXml!=NULL)
{
delete m_pXml;
m_pXml=NULL;
}
return flag;
}
5.xml文件类似于
<ALARM>
<ALARM>
<ALARM>14:36</ALARM>
<ALARM>09:06</ALARM>
<ALARM>22:00</ALARM>
<ALARM>05:00</ALARM>
<ALARM>09:00</ALARM>
</ALARM>
</ALARM>
- tinyxml在wince下的用法
- tinyxml在wince下的用法
- TinyXml 在iPhone下的解析
- WinCE下错误报告的用法
- TinyXml的基本用法
- TinyXML的简单用法
- Windows Mobile和Wince下使用TinyXML进行Native C++的开发
- WinCE和Windows Mobile下使用TinyXML进行C++的开发
- cocos中tinyxml在android下的问题
- tinyxml的用法和实例
- MFC中TinyXml的用法
- Openssl在wince下的编译
- Openssl在wince下的编译
- miniLZO项目在winCE下的使用
- 在wince下PPPOE连接的实现
- QT在wince下的跟踪调试
- CStdioFile在wince下运用的麻烦
- 在WINCE下的点对点消息队列
- 几种合并查找算法
- Varnish安装搭建配置缓存服务器
- sqlplus /nolog
- 关于壁纸镶嵌问题 ”VM won't let us allocate“
- Android智能指针 (sp & wp)
- tinyxml在wince下的用法
- select
- 海量数据处理专题(三)——Hash
- C#发送电子邮件的名称空间:System.Net.Mail
- fatal error LNK1112: module machine type 'THUMB' conflicts with target machine type 'ARM'
- mysql 索引的使用 之 创建 、 删除
- 海量数据处理专题(四)——Bit-map
- 转 XMLHttpRequest().readyState的五种状态详解
- Delphi Spring Framework编程规范(草稿)V0.1