当前位置: 首页>>代码示例>>C++>>正文


C++ CInterface::SMT_UpDealRecord方法代码示例

本文整理汇总了C++中CInterface::SMT_UpDealRecord方法的典型用法代码示例。如果您正苦于以下问题:C++ CInterface::SMT_UpDealRecord方法的具体用法?C++ CInterface::SMT_UpDealRecord怎么用?C++ CInterface::SMT_UpDealRecord使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CInterface的用法示例。


在下文中一共展示了CInterface::SMT_UpDealRecord方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: SMT_UpBeforeFile

/*=================================================================
* Function ID :  SMT_UpBeforeFile
* Input       :  void
* Output      :  void
* Author      :  
* Date        :  2006  2
* Return	  :  void
* Description :  前置启动将当天前的文件的记录全部上传
* Notice	  : 
*=================================================================*/
bool CSmartCommunicationDlg::SMT_UpBeforeFile(XDHANDLE nHandler)
{
	int				 nTimeOut=20000;
	int				 nErrCode=0;
	char			 sErrMsg[256];	
	char			 sTempPath[256];
	char			 sBakPath[256];
	char			 sData[256],sMsg[1024];
	FILE			 *fpt=NULL;
	FileBase		 mfile;
	vector<CString>  VFileName;
	vector<CString>  VFileContent; //文件内容
	CString			 sFileContent; 
	
	memset(sMsg,     0,sizeof sMsg);
	memset(sData,    0,sizeof sData  );
	memset(sErrMsg,  0,sizeof sErrMsg);	
	memset(sTempPath,0,sizeof sTempPath);
	memset(sBakPath, 0,sizeof sBakPath);
		
	VFileName.clear();						//清除所有文件名		
	VFileContent.clear();					//保存文件内容
	SMT_GetAllFileName(VFileName);			//获取不是当天产生的文件		
	if( VFileName.empty() ) return false;
	for( int i=0; i<VFileName.size(); i++ )	//将还未上传的文件记录全部上传
	{
		memset(sTempPath,0,sizeof sTempPath);
		memset(sBakPath, 0,sizeof sBakPath);
		strcpy(sTempPath,m_DealPath);
		strcat(sTempPath,"\\");
		strcat(sTempPath,VFileName[i].GetBuffer(100));

		strcpy(sBakPath,m_DealPath);
		strcat(sBakPath,"\\Bak\\Bak_");
		strcat(sBakPath,VFileName[i].GetBuffer(100));		
		//remove(sBakPath);
		if( (fpt=mfile.OpenFile(sTempPath,"r"))==NULL)
		{
			continue;
		}
		//得到该文件的所有记录
		while( mfile.FileEOF(fpt)==0)
		{
			memset(sData,0,sizeof sData);
			if( fgets(sData,128,fpt) !=NULL )
			{
				if( !g_StartFlag )
				{
					mfile.CloseFile(fpt);
					return true;
				}
				sFileContent=sData;
				VFileContent.push_back(sFileContent);
			}
		}
		mfile.CloseFile(fpt);
		int nCount=VFileContent.size();
		bool bStatus=false;
		//上传该文件的记录
		for( int j=0; j<nCount; j++ )
		{
			bStatus=false;
			for( int k=0; i<10; k++ ) //一条记录如果上传10次还不成功,则全部重新上传
			{				
				if( !g_StartFlag ) 	
				{
					VFileContent.clear();
					return true;	//收到系统退出命令
				}
				memset(sData,0,sizeof sData);
				strcpy(sData,VFileContent[j].GetBuffer(100));
				if( !g_CInterface.SMT_UpDealRecord(nHandler,sData,nTimeOut,&nErrCode,sErrMsg) )
				{
					sprintf(sMsg,"上传文件名%s的第%ld条记录到金仕达失败(%ld,%s)",VFileName[i].GetBuffer(100),j+1,nErrCode,sErrMsg);
					if( g_IniFilePara.bWriteDebugLog ) WriteLog(sErrMsg);
					if( g_IniFilePara.bWriteDebugLog ) AddString(sMsg);
					Sleep(5000);
					continue;
				}
				bStatus=true;
				break;
			}
			if( !bStatus )
			{
				WriteLog(sErrMsg);
				VFileContent.clear();
				Sleep(1000);
				return false;	
			}
			Sleep(50);
//.........这里部分代码省略.........
开发者ID:nykma,项目名称:ykt4sungard,代码行数:101,代码来源:SmartCommunicationDlg.cpp


注:本文中的CInterface::SMT_UpDealRecord方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。