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 + -
显示快捷键?