loadbasicdat.cpp

来自「液晶电视完整代码可实现人机界面」· C++ 代码 · 共 1,881 行 · 第 1/4 页

CPP
1,881 行
字号
	memset( Table, 0, sizeof(Table) );	memset( SqlCmd, 0, sizeof(SqlCmd) );	if ( (FP = fopen(filename, "r+")) == NULL )	{		sprintf(retMsg, "打开数据文件[%s]失败!\n", filename);		return FALSE;	}	//开始数据处理	sCis.BeginTrans();	while( !feof(FP) )	{		printf("已导入数据[%d]开始导入第[%d]条数据\n", nCount, nCount+1 );		memset( recvbuff, 0, sizeof(recvbuff) );		pRet = fgets( recvbuff, sizeof(recvbuff), FP );		if( pRet == NULL )		{			printf("读取文件内容有误或为空!\n");		//	return FALSE;		}//		printf("recvbuff:[%s]\n", recvbuff );		if( strlen(recvbuff) ==  0 )			continue;		memset( &CisBankDat, 0, sizeof(CIS_RIGHTLIST_DATA) );		Begin = End = recvbuff;		for( int i=0; i<5; i++ )		{			Begin = End;			End = strstr( Begin+1, "\t" );			if( End == NULL )			{ printf("end\n"); }			if( i == 0 )				memcpy( CisBankDat.code, Begin, End - Begin );			if( i == 1 )				memcpy( CisBankDat.sendgrant, Begin +1 , End - Begin -1);			if( i == 2 )				memcpy( CisBankDat.recvgrant, Begin +1, End - Begin -1);			if( i == 3 )				memcpy( CisBankDat.update, Begin +1 , End - Begin -1);			if( i == 4 )			{//				End = strstr( Begin+2, "\"" );//				memcpy( CisBankDat.remark, Begin + 2 , End - Begin -2);				strcpy( CisBankDat.uptime, Begin+1 );//				memcpy( CisBankDat.remark, Begin +1, End - Begin );			}		}		//去业务要素头尾		ret = FormatRightDat( &CisBankDat, retMsg );		if( ret <= 0 )		{			printf("retMsg:[%s]\n", retMsg );			return FALSE;		}		if( ret == 9 )		{		nErrno ++;		nCount --;			int input;			printf("\n!!!导入数据失败是否继续:\t1.跳过该数据/以后手工导入\t2.退出\n");			printf("请输入:");			scanf("%d", &input );			while( 1 )			{				if(input<1||input>2)				{					printf("输入非法[%d]\t使用默认值[1]\n", input);					input=1;					continue;				}				else					break;			}			if( input == 2 )			{	return FALSE;	}			if( input==1 )				continue;		}if( ret==9 ){		printf("==============================================================\n");		printf( "CisBankDat.code         :[%s]\n", CisBankDat.code);		printf( "CisBankDat.sendgrant       :[%s]\n", CisBankDat.sendgrant);		printf( "CisBankDat.recvgrant         :[%s]\n", CisBankDat.recvgrant);		printf( "CisBankDat.update     :[%s]\n", CisBankDat.update);		printf( "CisBankDat.uptime      :[%s]\n", CisBankDat.uptime);		printf("==============================================================\n");}		//相关判断		//开始保存报文		strcpy( Table, "cis409" );		memset( SqlCmd, 0, sizeof(SqlCmd) );		sprintf( SqlCmd, "INSERT INTO %s VALUES('%s', '%s', '%s')",					Table,					CisBankDat.code,					CisBankDat.sendgrant,					CisBankDat.recvgrant );			ret = sCis.SaveCisData( Table, SqlCmd, retMsg );			if( ret <= 0 )			{				printf("保存数据失败!\n");				printf( "sSqlCmd:[%s]\n", SqlCmd );				sCis.RollbackTrans();				return FALSE;			}		nCount ++ ;	}        sCis.CommitTrans();	printf("==============导入数据成功[%d]条\t导入数据失败[%d]条=============\n", nCount, nErrno );	fclose( FP );	return TRUE;}int LoadCisCommonData( char *filename, char *retMsg ){	//提示//	printf("Enter LoadCisBankclassData \n" );//	printf("filename:[%s]\n", filename );	//验证介质	if( 0 != access( filename, 0 ) )	{		sprintf( retMsg, "数据文件[%s]不存在!", filename );		return FALSE;	}	//	int ret=0;	int nCount=0;	int nErrno=0;	FILE *FP=NULL;	char recvbuff[200+1];	CIS_COMMON_DATA CisBankDat;	char *pRet;	char *Begin = NULL, *End = NULL;	char Table[15];	char SqlCmd[1024];	char workdate[8+1];	memset( workdate, 0, sizeof(workdate) );	memset( Table, 0, sizeof(Table) );	memset( SqlCmd, 0, sizeof(SqlCmd) );	if ( (FP = fopen(filename, "r+")) == NULL )	{		sprintf(retMsg, "打开数据文件[%s]失败!\n", filename);		return FALSE;	}//查找系统工作日期/*	sprintf( SqlCmd, "SELECT currsysdate from login" );	ret = sCis.FindCisValue( "login", SqlCmd, workdate, retMsg );//printf("ret:[%d]\tworkdate:[%s]\n", ret, workdate);	if( ret <= 0 )	{		printf("查找系统工作日失败!\n");		printf("SqlCmd:[%s]\n",SqlCmd );		return FALSE;	}*/	//开始数据处理	sCis.BeginTrans();	while( !feof(FP) )	{		printf("已导入数据[%d]开始导入第[%d]条数据\n", nCount, nCount+1 );		memset( recvbuff, 0, sizeof(recvbuff) );		pRet = fgets( recvbuff, sizeof(recvbuff), FP );		if( pRet == NULL )		{			printf("读取文件内容有误或为空!\n");		//	return FALSE;		}//		printf("recvbuff:[%s]\n", recvbuff );		if( strlen(recvbuff) ==  0 )			continue;		memset( &CisBankDat, 0, sizeof(CIS_COMMON_DATA) );		Begin = End = recvbuff;		for( int i=0; i<8; i++ )		{			Begin = End;			End = strstr( Begin+1, "\t" );			if( End == NULL )			{ printf("end\n"); }			if( i == 0 )				memcpy( CisBankDat.datcode, Begin, End - Begin );			if( i == 1 )				memcpy( CisBankDat.datname, Begin +1 , End - Begin -1);			if( i == 2 )				memcpy( CisBankDat.datvalue, Begin +1, End - Begin -1);			if( i == 3 )				memcpy( CisBankDat.wdatvalue, Begin +1 , End - Begin -1);			if( i == 4 )				memcpy( CisBankDat.effdata, Begin +1 , End - Begin -1);							if( i == 5 )				memcpy( CisBankDat.update, Begin +1 , End - Begin -1);			if( i == 6 )				memcpy( CisBankDat.uptime, Begin +1 , End - Begin -1);			if( i == 7 )			{//				End = strstr( Begin+2, "\"" );//				memcpy( CisBankDat.remark, Begin + 2 , End - Begin -2);				strcpy( CisBankDat.remark, Begin+1 );//				memcpy( CisBankDat.remark, Begin +1, End - Begin );			}		}		//去业务要素头尾		ret = FormatCommonDat( &CisBankDat, retMsg );		if( ret <= 0 )		{			printf("retMsg:[%s]\n", retMsg );			return FALSE;		}		if( ret == 9 )		{		nErrno ++;		nCount --;			int input;			printf("\n!!!导入数据失败是否继续:\t1.跳过该数据/以后手工导入\t2.退出\n");			printf("请输入:");			scanf("%d", &input );			while( 1 )			{				if(input<1||input>2)				{					printf("输入非法[%d]\t使用默认值[1]\n", input);					input=1;					continue;				}				else					break;			}			if( input == 2 )			{	return FALSE;	}			if( input==1 )				continue;		}if( ret==9 ){		printf("==============================================================\n");		printf( "CisBankDat.datcode	:[%s]\n", CisBankDat.datcode);		printf( "CisBankDat.datname	:[%s]\n", CisBankDat.datname);		printf( "CisBankDat.datvalue	:[%s]\n", CisBankDat.datvalue);		printf( "CisBankDat.wdatvalue	:[%s]\n", CisBankDat.wdatvalue);		printf( "CisBankDat.effdata	:[%s]\n", CisBankDat.effdata);		printf( "CisBankDat.update	:[%s]\n", CisBankDat.update);		printf( "CisBankDat.uptime	:[%s]\n", CisBankDat.uptime);		printf( "CisBankDat.remark	:[%s]\n", CisBankDat.remark);				printf("==============================================================\n");}		//相关判断		char efftype[2];		if( strcmp(CisBankDat.wdatvalue, " ") == 0 )			strcpy( efftype, "0" );		else			strcpy( efftype, "1" );		//开始保存报文		strcpy( Table, "cis407" );		memset( SqlCmd, 0, sizeof(SqlCmd) );		sprintf( SqlCmd, "INSERT INTO %s VALUES('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",					Table,					CisBankDat.datcode,					CisBankDat.datname,					CisBankDat.datvalue,					CisBankDat.wdatvalue,					CisBankDat.effdata,					"1", efftype,					CisBankDat.update,					"1" );				ret = sCis.SaveCisData( Table, SqlCmd, retMsg );				if( ret <= 0 )				{					printf("保存数据失败!\n");					printf( "sSqlCmd:[%s]\n", SqlCmd );					sCis.RollbackTrans();					return FALSE;				}			nCount ++ ;		}		sCis.CommitTrans();		printf("==============导入数据成功[%d]条\t导入数据失败[%d]条=============\n", nCount, nErrno );		fclose( FP );		return TRUE;	}int LoadCisParameterData( char *filename, char *retMsg ){	//提示//	printf("Enter LoadCisBankclassData \n" );//	printf("filename:[%s]\n", filename );	//验证介质	if( 0 != access( filename, 0 ) )	{		sprintf( retMsg, "数据文件[%s]不存在!", filename );		return FALSE;	}	//	int ret=0;	int nCount=0;	int nErrno=0;	FILE *FP=NULL;	char recvbuff[200+1];	CIS_PARAMETER_DATA CisBankDat;	char *pRet = NULL;	char *Begin = NULL, *End = NULL;	char Table[15];	char SqlCmd[1024];	char workdate[8+1];	memset( workdate, 0, sizeof(workdate) );	memset( Table, 0, sizeof(Table) );	memset( SqlCmd, 0, sizeof(SqlCmd) );	if ( (FP = fopen(filename, "r+")) == NULL )	{		sprintf(retMsg, "打开数据文件[%s]失败!\n", filename);		return FALSE;	}//查找系统工作日期/*	sprintf( SqlCmd, "SELECT currsysdate from login" );	ret = sCis.FindCisValue( "login", SqlCmd, workdate, retMsg );//printf("ret:[%d]\tworkdate:[%s]\n", ret, workdate);	if( ret <= 0 )	{		printf("查找系统工作日失败!\n");		printf("SqlCmd:[%s]\n",SqlCmd );		return FALSE;	}*/	//开始数据处理	sCis.BeginTrans();	while( !feof(FP) )	{		printf("已导入数据[%d]开始导入第[%d]条数据\n", nCount, nCount+1 );		memset( recvbuff, 0, sizeof(recvbuff) );		pRet = fgets( recvbuff, sizeof(recvbuff), FP );		if( pRet == NULL )		{			printf("读取文件内容有误或为空!\n");		//	return FALSE;		}//		printf("recvbuff:[%s]\n", recvbuff );		if( strlen(recvbuff) ==  0 )			continue;		memset( &CisBankDat, 0, sizeof(CIS_PARAMETER_DATA) );		Begin = End = recvbuff;		for( int i=0; i<6; i++ )		{			Begin = End;			End = strstr( Begin+1, "\t" );			if( End == NULL )			{ printf("end\n"); }			if( i == 0 )				memcpy( CisBankDat.parcode, Begin, End - Begin );			if( i == 1 )				memcpy( CisBankDat.parval, Begin +1 , End - Begin -1);			if( i == 2 )				memcpy( CisBankDat.pardesc, Begin +1, End - Begin -1);			if( i == 3 )				memcpy( CisBankDat.status, Begin +1 , End - Begin -1);			if( i == 4 )				memcpy( CisBankDat.alttype, Begin +1 , End - Begin -1);			if( i == 5 )			{				strcpy( CisBankDat.update, Begin+1 );			}		}		//去业务要素头尾		ret = FormatParameterDat( &CisBankDat, retMsg );		if( ret <= 0 )		{			printf("retMsg:[%s]\n", retMsg );			return FALSE;		}		if( ret == 9 )		{		nErrno ++;		nCount --;			int input;			printf("\n!!!导入数据失败是否继续:\t1.跳过该数据/以后手工导入\t2.退出\n");			printf("请输入:");			scanf("%d", &input );			while( 1 )			{				if(input<1||input>2)				{					printf("输入非法[%d]\t使用默认值[1]\n", input);					input=1;					continue;				}				else					break;			}			if( input == 2 )			{	return FALSE;	}			if( input==1 )				continue;		}if( ret==9 ){		printf("==============================================================\n");		printf( "CisBankDat.parcode	:[%s]\n", CisBankDat.parcode);		printf( "CisBankDat.parval	:[%s]\n", CisBankDat.parval);		printf( "CisBankDat.pardesc	:[%s]\n", CisBankDat.pardesc);		printf( "CisBankDat.status	:[%s]\n", CisBankDat.status);		printf( "CisBankDat.alttype	:[%s]\n", CisBankDat.alttype);		printf( "CisBankDat.update	:[%s]\n", CisBankDat.update);		printf("==============================================================\n");}		//相关判断		//开始保存报文		strcpy( Table, "returncode" );		memset( SqlCmd, 0, sizeof(SqlCmd) );		sprintf( SqlCmd, "INSERT INTO %s VALUES('%s', '%s', '%s')",					Table,					CisBankDat.parcode,					CisBankDat.parval,					CisBankDat.pardesc );			ret = sCis.SaveCisData( Table, SqlCmd, retMsg );			if( ret <= 0 )			{				printf("保存数据失败!\n");				printf( "sSqlCmd:[%s]\n", SqlCmd );				sCis.RollbackTrans();				return FALSE;			}		nCount ++ ;	}        sCis.CommitTrans();	printf("==============导入数据成功[%d]条\t导入数据失败[%d]条=============\n", nCount, nErrno );	fclose( FP );	return TRUE;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?