CMarkup的保存与读取

	CArray<STest *,STest *> arTest;  // 动态数组的创建 存的是指向结构体的指针 这样效率快
	struct Stest
	{
		int 	nData;
		float 	fData;
		CString strData;
	}
 
		ArTest arTest;
		STest *pTest1 = new STest(1, 1.0f, _T("111"));
		STest *pTest2 = new STest(2, 2.0f, _T("222"));
		STest *pTest3 = new STest(3, 3.0f, _T("333"));
		arTest.Add(pTest1);
       		arTest.Add(pTest2);
		arTest.Add(pTest3);

		STest *pTempTest = NULL;
		CString strTemp;
		CMarkup markupSave;
		markupSave.AddElem(_T("Head"));
		int i, nSize = (int)arTest.GetSize();
		for (i = 0; i < nSize; i++)
		{
			pTempTest = arTest[i];

			markupSave.AddChildElem(_T("STest"));
			markupSave.IntoElem();
			strTemp.Format(_T("%d"), pTempTest->nData);
			markupSave.SetAttrib(_T("nData"), strTemp);
			strTemp.Format(_T("%f"), pTempTest->fData);
			markupSave.SetAttrib(_T("fData"), strTemp);
			markupSave.SetAttrib(_T("strData"), pTempTest->strData);
			markupSave.OutOfElem();
		}

		markupSave.Save(_T("D:\\Test.xml"));

		CMarkup markupRead;
		if (markupRead.Load(_T("D:\\Test.xml")))
		{
			ArTest arTestRead;
			if (markupRead.FindElem(_T("Head")))
			{
				while(markupRead.FindChildElem(_T("STest")))
				{
					//方法1
					markupRead.IntoElem();
					pTempTest = new STest;
					pTempTest->nData = _ttoi(markupRead.GetAttrib(_T("nData")));
					pTempTest->fData = (float)_tstof(markupRead.GetAttrib(_T("fData")));
					pTempTest->strData = markupRead.GetAttrib(_T("strData"));
					arTestRead.Add(pTempTest);
					markupRead.OutOfElem();

					//方法2
// 					pTempTest = new STest;
// 					pTempTest->nData = _ttoi(markupRead.GetChildAttrib(_T("nData")));
// 					pTempTest->nData = (float)_tstof(markupRead.GetChildAttrib(_T("fData")));
// 					pTempTest->strData = markupRead.GetChildAttrib(_T("strData"));
// 					arTestRead.Add(pTempTest);				
				}
			}
		}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值