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);
}
}
}