123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- #include "StdAfx.h"
- // 分店命名不能包含:type、@、$、-> 几类关键字;
- // 1.读取[version]表中的[uploadrule]字段信息;
- // 2.根据上传的相片类型来查找[uploadrule]字段中相应的上传规则;
- // 3.根据分店名查找出branchinfo.dat对应的ip地址;
- // 以下是 上传任务 *.dat的文件格式;
- // 4.填充CArray<CStringArray,CStringArray>对象;
- // 索引0:订单号 + ";" + 客人姓名;
- // 索引1:目标域名;
- // 索引2:源域名;
- // 索引3:压缩像素的值;
- // 索引4:相片所在的根目录;// 如果使用多级共享目录,索引4的值就无效!
- // 索引5:【相片类型】
- // 索引6:
- // 索引7:
- // 索引8:
- // 索引9:
- // 索引10:开始记录相片名称(不包含相片路径)
- // 索引11:空格,做为分隔符,分隔开下一张相片名;当上传完成该相片后,这里的被置为"OK",以表示相片已上传完成。
- // 索引12:第二张相片名;
- // 索引13:空格..
- // 索引n: 以此类推;
- // 索引n+1:以此类推;
- // 如果要使用多级共享目录,则需要在10以后的记录里,全部使用相片的完整路径,而不是使用相片名称;
- // 但是,若使用相片的完整路径,在共享目录更改后,会找不到相片所在路径 ,则会上传失败;
- // 如果使用相片名,可以在多个共享目录中查找,最后根据共享目录的相片路径 再上传;
- #include <afxtempl.h>
- void getuploadtaskfile()
- {
- CString str = "uploadtask.dat";
- CFile cf;
- CFileException e;
- if ( cf.Open(str, CFile::modeRead,&e) )
- {
- DWORD dwLenght = cf.GetLength();
- if (dwLenght <= sizeof(DWORD))
- {
- cf.Close();
- TRACE(_T("文件内容错误~"));
- return;
- }
- // 读取CArray大小;
- DWORD dwArySize = 0;
- cf.Read(&dwArySize,sizeof(DWORD));
- // 读取出CArray实际内容;
- BYTE *pBuffer = new BYTE[ dwLenght - sizeof(DWORD) ];
- cf.Read(pBuffer, dwLenght - sizeof(DWORD));
- // 使用内存文件转储出来;
- CMemFile cmf;
- cmf.Attach(pBuffer, dwLenght - sizeof(DWORD));
- // 再将内存文件序列化存储到CArchvie中;
- CArchive ar(&cmf, CArchive::load);
- // 从CArchive中序列化出来;
- CArray<CStringArray,CStringArray> tagAry;
- tagAry.SetSize(dwArySize, 1);
- for ( int i = 0; i < dwArySize; i++ )
- {
- tagAry.ElementAt(i).Serialize(ar);
- }
- // 释放所有资源;
- ar.Close();
- cmf.Detach();
- if ( pBuffer )
- delete []pBuffer;
- pBuffer = NULL;
- // 关闭文件;
- cf.Close();
- #if 1
- // 显示出所有内容;
- for ( int n = 0; n < dwArySize; n++ )
- {
- CStringArray &strAry = tagAry.ElementAt(n);
- for ( int k = 0; k < strAry.GetSize(); k++ )
- {
- CString str = strAry.ElementAt(k);
- //TRACE(str);
- TRACE(_T("%s\n"),str);
- }
- }
- /************************************************************************/
- /*
- 输出如下:
- //--------------------------------------------------------------
- 本店->机关店
- 20140220-043;客人:T3薛晓威,崔莯熹
- 原片
- 107/107
- 上传完毕
- 2015-09-22
- \\服务器\客户原片(管理软件)$\上传任务\2.dat
- 本店->机关店
- 20131224-002;客人:T2王爽,窦千壹
- 原片
- 91/91
- 上传完毕
- 2015-09-22
- \\服务器\客户原片(管理软件)$\上传任务\1.dat
- //--------------------------------------------------------------
- 元素固定大小 11 ;
- 索引0:[分店名]->[分店名]
- 索引1:订单号;客人:[姓名]
- 索引2:[相片类型]
- 索引3:[已上传数]/[总张数]
- 索引4:[上传状态] 状态有:等待中、上传完毕、连接服务器[ip]失败、上传文件失败[ip][文件名]、暂停、任务文件丢失、连接超时。
- 索引5:[上传完成日期]
- 索引6:[上传任务dat的路径]
- 索引7:未用
- 索引8:未用
- 索引9:未用
- 索引10:未用
- */
- /************************************************************************/
- #endif
- }
- }
|