⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pub_func.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		strcpy(outData,tmpdata);	*data_len = strlen(outData);		return 0;}//////////////////////////////////////////////// Added by MIQH -- 2002.04.12 // 函数功能: 将字符串中指定的字符去掉////////////////////////////////////////////// int TrimChar( char * inData, char * outData, int ch ){	int i = 0;	int j = 0;	char tmp[1024];		memset(tmp,0,1024);		for( i=0; i<(int)strlen(inData); i++ )	{		if( inData[i]!=ch )			{			tmp[j++] = inData[i];			}	}		strcpy(outData,tmp);		return 0;}/////////////////////////////////////////////////// Added by MIQH -- 2002.04.12 //函数功能: 将字符串转换为ASC码->EBCD码的预备串///////////////////////////////////////////////// int CD4CAL( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){	int num;	char tmp[1024];		memset(tmp,0,1024);		TrimChar(argv[0],tmp,32);		num = strlen(tmp)/4;		sprintf(outData,"%d",num);		*data_len = strlen(outData);		return 0;}/////////////////////////////////////////////////// Added by MIQH -- 2002.04.12 //函数功能: 将字符串中指定的字符去掉///////////////////////////////////////////////// int TrimCh( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){	char tmp[1024];		memset(tmp,0,1024);		TrimChar( inData, tmp, atoi(argv[0]) );		strcpy(outData,tmp);	*data_len = strlen(outData);		return 0;}//////////////////////////////////////////////////////Added by MIQH -- 2002.06.26 // 函数功能: 格式化字符串为定长,使输出串的所有字符// 都为数字字符,不足定长左补零,超长从左向右截短//////////////////////////////////////////////////// int NumStr( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){	char tmp[1024];	int inLen;	int outLen;	int i=0;	int k=0;		memset(tmp,0,1024);		inLen = strlen(inData);	outLen = atoi(argv[0]);	for( i=0; i<inLen; i++ )	{		if( 47<inData[i] && inData[i]<58 )		{			tmp[k++] = inData[i];				}		}	if( k<outLen )	{		memset( outData, '0', outLen );		memcpy( outData+outLen-k, tmp, k );	}	if( k>=outLen )	{		memcpy( outData, tmp+k-outLen, outLen );	}	outData[outLen] = 0;			*data_len = strlen(outData);		return 0;}//////////////////////////////////////////////////////从18位金额获取15位金额int FillMon( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){	int inLen;	int outLen;	char Tmp[1024],Money[100];		memset( outData , 0 , sizeof(outData));	memset( Tmp , 0 , sizeof(Tmp));	inLen = strlen(inData);	//outLen = atoi(argv[0]);	sprintf( Tmp , argv[0]);	//strcpy( outData, inData+3 );	strcpy( Money, Tmp+3 );	sprintf( outData , "%015s",Money);	outData[strlen(outData)] = 0;	*data_len = strlen(outData);printf("-++++++++- inData:[%s]\n", inData );printf("-++++++++- outData:[%s]\n", outData );		return 0;}//////////////////////////////////////////////////// Added by HCF -- 2002.07.26 // 函数功能: 将输入字符串的指定字符替换为另一字符//           参数一为被替换字符//	     参数二为替换字符////////////////////////////////////////////////// int ReplaceAsc( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){	int i=0;	char src, obj;		strcpy( outData, inData );		if ( argc != 2 )		return -1;	src = (char)atoi(argv[0]);	obj = (char)atoi(argv[1]);		for( i=0; outData[i] ; i++ )	{		if ( outData[i] == src )			outData[i] = obj;	}	*data_len = strlen(outData);		return 0;}///////////////////////////////////////////////// // Added by HCF -- 2002.07.26 // 函数功能: 删除字符串中的不可显示字符//           目前只删除回车、换行///////////////////////////////////////////////// int DelUnprtasc( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){	int i=0;		strcpy( outData, inData );		for( i=0; outData[i] ; i++ )	{		if ( outData[i] == 0x0a || outData[i] == 0x0d )			outData[i] = ' ';	}	*data_len = strlen(outData);		return 0;}/////////////////////////////////////////////////// Added by HCF -- 2002.07.31 // 函数功能: 删除字符串中的不可显示字符//           目前只删除回车、换行//////////////////////////////////////////////// int IsCCPC( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){		strcpy( outData, inData );		Trim( outData, "A" );	if ( strlen( outData ) == CCPCIDLEN )		outData[0] = 0;	*data_len = strlen(outData);		return 0;}//接收 商业银行报文, 解包前的预处理函数int mb_text(int argc, char argv[][M_MAX_PARA_LEN], char *indata, int *len, char *outdata){	char  	     strCMTNo[M_CMTNO_LEN + 1];	char 	     strTransCode[M_TXCODE_LEN + 1];	int          i;	char         TrxsNo[6];		memset( TrxsNo , 0 , sizeof( TrxsNo ));	i = strlen(indata);	if (i < M_MB_PKGNO_OFFSET + 3)	{		printf( "取报文号失败indata [%s]\n" , indata );		return(M_FAIL);	}	memset(strCMTNo, 0, sizeof(strCMTNo));	memcpy(strCMTNo, indata + M_MB_PKGNO_OFFSET , M_CMTNO_LEN);		memset(strTransCode, 0, sizeof(strTransCode));	strcpy(strTransCode, M_TXCODE_PREFIX_MB);	if( strncmp( strCMTNo , "004" , 3 ) == 0 )	{		memcpy( TrxsNo , indata + 5 ,3 );		if( strncmp( TrxsNo , "114" , 3 ) == 0 )			strcat(strTransCode, TrxsNo);		else			strcat(strTransCode, strCMTNo);	} else {		strcat(strTransCode, strCMTNo);	}	//strcat(strTransCode, strCMTNo);	strcpy(outdata, strTransCode);	*len = strlen(outdata);	printf("Trans code = [%s] \n", strTransCode);	return 0;}//////接收 CNAPS 系统报文, 解包前的预处理函数//   //int cnaps_text(int argc, char argv[][M_MAX_PARA_LEN], char *indata, int *len, char *outdata){	char strCMTNo[M_CMTNO_LEN + 1];	char strTransCode[M_TXCODE_LEN + 1];	char TrxsNo[6];	int i;		memset( TrxsNo , 0 , sizeof( TrxsNo ));	i = strlen(indata);	if (i < M_PKGNO_OFFSET)	{		printf( "取报文号失败indata [%s]\n" , indata );		//return(M_FAIL);	}	// Get CMT No from the input stream	memset(strCMTNo, 0, sizeof(strCMTNo));	memcpy(strCMTNo, indata + M_PKGNO_OFFSET, M_CMTNO_LEN);	memset(strTransCode, 0, sizeof(strTransCode));	strcpy(strTransCode, M_TXCODE_PREFIX_CNAPS);	if( strncmp( strCMTNo , "004" , 3 ) == 0 )	{		memcpy( TrxsNo , indata + 26 , 3);		if( strncmp( TrxsNo , "114" , 3 ) == 0 )			strcat(strTransCode, TrxsNo);		else			strcat(strTransCode, strCMTNo);	} else {		strcat(strTransCode, strCMTNo);	}		strcpy(outdata, strTransCode);	*len = strlen(outdata);#ifdef _DEBUG_	printf("Trans code = [%s] \n", strTransCode);#endif	return 0;}int mb_pkghead(int argc, char argv[][M_MAX_PARA_LEN], char *indata, int *len, char *outdata){	char  	     strCMTNo[M_CMTNO_LEN + 1];	char 	     strTransCode[M_TXCODE_LEN + 1];	int          i;		i = strlen(indata);	if (i < M_MB_PKGHEAD_OFFSET + 3)	{		printf( "取报文号失败indata [%s]\n" , indata );		return(M_FAIL);	}	memset(strCMTNo, 0, sizeof(strCMTNo));	memcpy(strCMTNo, indata + M_MB_PKGHEAD_OFFSET , M_CMTNO_LEN);		memset(strTransCode, 0, sizeof(strTransCode));	strcpy(strTransCode, M_TXCODE_PREFIX_MB);	strcat(strTransCode, strCMTNo);	strcpy(outdata, strTransCode);	*len = strlen(outdata);	printf("Trans code = [%s] \n", strTransCode);	return 0;}//////接收 CNAPS 系统报文, 解包前的预处理函数//   //int cnaps_pkghead(int argc, char argv[][M_MAX_PARA_LEN], char *indata, int *len, char *outdata){	char strCMTNo[M_CMTNO_LEN + 1];	char strTransCode[M_TXCODE_LEN + 1];	int i;		i = strlen(indata);	if (i < M_PKGHEAD_OFFSET)	{		printf( "取报文号失败indata [%s]\n" , indata );		return(M_FAIL);	}	// Get CMT No from the input stream	memset(strCMTNo, 0, sizeof(strCMTNo));	memcpy(strCMTNo, indata + M_PKGHEAD_OFFSET, M_CMTNO_LEN);	memset(strTransCode, 0, sizeof(strTransCode));	strcpy(strTransCode, M_TXCODE_PREFIX_CNAPS);	strcat(strTransCode, strCMTNo);		strcpy(outdata, strTransCode);	*len = strlen(outdata);#ifdef _DEBUG_	printf("Trans code = [%s] \n", strTransCode);#endif	return 0;}//int SetExp(int argc, char argv[][M_MAX_PARA_LEN], char *indata, int *len, char *outdata){	char Tmp[1024];	int Len;		memset( Tmp , 0 , sizeof( Tmp ));	Len = atoi(argv[0]);	printf("SetExpLen = [%s][%s][%d]\n",argv[0],argv[1],Len);	memcpy( Tmp , indata , Len );	printf("OutDate = [%s]\n",outdata);		strcpy(outdata, Tmp);	*len = strlen(outdata);	return 0;}BOOL  StrTrim( char *in_data ){    int i,j = 0;    char tmp[1024];    memset(tmp,0,sizeof(tmp));    for(i = 0;i < strlen(in_data);i++)    {            if(in_data[i] != ' ')                    tmp[j++] = in_data[i];    }    strcpy( in_data , tmp);    return TRUE;}int TrimSpaceFillChar(int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data){	char	ch;	char tmp[1000];	int in_len,len;	int i;	memset(tmp,0,sizeof(tmp));	len = atoi(argv[2]);    StrTrim(in_data);	in_len = strlen(in_data);	if(len <= in_len) {		strcpy(out_data,in_data);		out_data[len] = '\0';		*data_len = len;		return 0;		}			ch = argv[1][0];	if(strcmp(argv[0],"left") == 0) {		for(i = 0;i<len - in_len;i++)			tmp[i]=ch;		strcat(tmp,in_data);	}	else {		strcpy(tmp,in_data);		for(i = in_len;i<len;i++)			tmp[i]=ch;	}	strcpy(out_data,tmp);	out_data[len] = '\0';	*data_len = atoi( argv[2] );	return( 0 );}int   JuDgeNumStr( char *in_data ){        int i = 0;        char tmp[1024];        memset(tmp,0,sizeof(tmp));        for(i = 0;i < strlen(in_data);i++)        {                if(in_data[i] > '9'||in_data[i] < '0')			return -1;        }        return 0;}int Get_LimteDate(int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data){    if( (JuDgeNumStr(argv[0]) == 0) || (JuDgeNumStr(argv[1]) == 0) )    {	    char Day[3],Month[3],Year[5],Day1[3];   	    memset( Day , 0 , sizeof( Day ));	    memset( Month , 0 , sizeof( Month ));	    memset( Year , 0 , sizeof( Year ));	    memset( Day1 , 0 , sizeof( Day1 ));	    memcpy( Year  , argv[0] , 4 );	    memcpy( Month , argv[0]+4 , 2 );	    memcpy( Day   , argv[0]+6 , 2 );	    memcpy( Day1  , argv[1]+6 , 2 );	    if( atoi(Day) < atoi(Day1))	    {		    switch(atoi(Month))		    {		    //大月31天,小月30天		        case 1:case 3:case 5:case 7:case 8: case 10: case 12:		            sprintf(out_data,"%02d",atoi(Day)+31-atoi(Day1));		            break;   		    //闰年2月29天,其他2月28天		        case 2:		            if( atoi(Year)%4 == 0 )			        sprintf(out_data,"%02d",atoi(Day)+29-atoi(Day1));		            else			        sprintf(out_data,"%02d",atoi(Day)+28-atoi(Day1));		            break;		            default:		            sprintf(out_data,"%02d",atoi(Day)+30-atoi(Day1));		            break;		     }	     }	     else	     {		     sprintf(out_data,"%02d",atoi(Day)-atoi(Day1));	     }    }    else    {        //如果输入期限有问题则固定赋值	    memcpy ( out_data, "02",  2   );     }	*data_len = strlen(out_data);  	return 0;}int Get_BsrList(int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data){    strcpy(out_data,in_data);    *data_len = strlen(out_data);	    return 0;}int GetRealData(int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data){	int len,Count;	int Len;	len = atoi(argv[1]);	Count = atoi(argv[0]);	Len = len*Count;	printf("Len = [%d*%d]=[%d]\n", len,Count,Len);	memcpy( out_data , in_data , Len );	*data_len = strlen(out_data);  	return 0;}

⌨️ 快捷键说明

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