123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /************************************************************************/
- /*
- branchinfo.dat的写入读出序列化过程
- */
- /************************************************************************/
- void WriteArchive(IN LPCTSTR lpFileName /* branchinfo.dat文件路径 */)
- {
- int nArySize = 2; // 示例要写入的个数;
- CArray<CStringArray,CStringArray> MybranchInfo;
- MybranchInfo.SetSize(nArySize,1);
- // 分店1;
- MybranchInfo.ElementAt(0).Add(_T("20150617162809502788.ly.com"));
- MybranchInfo.ElementAt(0).Add(_T("儿童分店A"));
- MybranchInfo.ElementAt(0).Add(_T("192.168.1.250"));
- MybranchInfo.ElementAt(0).Add(_T("总店"));
- MybranchInfo.ElementAt(0).Add(_T("利亚方舟"));
- MybranchInfo.ElementAt(0).Add(_T(""));
- MybranchInfo.ElementAt(0).Add(_T(""));
- // 分店2;
- MybranchInfo.ElementAt(1).Add(_T("20140913092332521757.ly.com"));
- MybranchInfo.ElementAt(1).Add(_T("儿童分店B"));
- MybranchInfo.ElementAt(1).Add(_T("192.168.1.110"));
- MybranchInfo.ElementAt(1).Add(_T(""));
- MybranchInfo.ElementAt(1).Add(_T("利亚方舟"));
- MybranchInfo.ElementAt(1).Add(_T(""));
- MybranchInfo.ElementAt(1).Add(_T(""));
- // 创建内存文件;
- CMemFile MembranchInfo;
- CArchive ar(&MembranchInfo,CArchive::store);
- for ( int i = 0; i < nArySize; i++)
- {
- // 将数组序列化到对象中;
- MybranchInfo.ElementAt(i).Serialize(ar);
- }
- ar.Close();
- DWORD fLength = MembranchInfo.GetLength();
- PBYTE pData = MembranchInfo.Detach();
- CFile fb;
- if (fb.Open(lpFileName, CFile::modeCreate|CFile::modeWrite))
- {
- fb.Write(&nArySize,sizeof(DWORD)); // 写入数组个数;
- fb.Write(pData,fLength); // 写入数组内容;
- DWORD dwFlag = 889900;
- fb.Write(&dwFlag,sizeof(DWORD)); // 写入结束标记;
- fb.Close();
- }
- }
- void ReadArchive(IN LPCTSTR lpFileName /* branchinfo.dat文件路径 */)
- {
- CFile fp;
- CArray<CStringArray, CStringArray>array;
- if( PathFileExists(lpFileName))
- {
- fp.Open(lpFileName, CFile::modeRead);
- DWORD leng = fp.GetLength();
- if ( leng >= sizeof(DWORD)*2 )
- {
- DWORD flag;
- fp.Seek(-(int)sizeof(DWORD),CFile::end);
- fp.Read(&flag, sizeof(DWORD));
- if(flag == 889900)
- {
- fp.SeekToBegin();
- DWORD leng=fp.GetLength();
- DWORD arraysize;
- fp.Read(&arraysize, sizeof(DWORD));
- BYTE *pData=new BYTE[leng-sizeof(DWORD)];
- fp.Read(pData,leng-sizeof(DWORD));
- fp.Close();
- CMemFile memfile;
- memfile.Attach(pData,leng-sizeof(DWORD));
- CArchive ar(&memfile, CArchive::load);
- array.SetSize(arraysize);
- int i = 0;
- for(i = 0; i<array.GetSize(); i++)
- {
- try
- {
- array.ElementAt(i).Serialize(ar);
- }
- catch(CArchiveException *e)
- {
- e->ReportError();
- }
- }
- ar.Close();
- memfile.Detach();
- delete []pData;
- }
- else
- {
- fp.Close();
- }
- }
- else
- {
- fp.Close();
- }
- }
- int nSize = array.GetSize();
- for ( int i = 0; i < nSize; i++)
- {
- OutputDebugString(array.ElementAt(i).ElementAt(0));OutputDebugString(_T("\n")); // 域名;
- OutputDebugString(array.ElementAt(i).ElementAt(1));OutputDebugString(_T("\n")); // 分店名;
- OutputDebugString(array.ElementAt(i).ElementAt(2));OutputDebugString(_T("\n")); // ip;
- OutputDebugString(array.ElementAt(i).ElementAt(3));OutputDebugString(_T("\n")); // 是否总店, 是,填写"总店"; 否,填写空;
- OutputDebugString(array.ElementAt(i).ElementAt(4));OutputDebugString(_T("\n")); // 企业名;
- OutputDebugString(array.ElementAt(i).ElementAt(5));OutputDebugString(_T("\n")); // 权限;
- OutputDebugString(array.ElementAt(i).ElementAt(6));OutputDebugString(_T("\n")); // 可访问的界面名称;
- OutputDebugString(_T("\n"));
- }
- }
|