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

📄 pub_func.cpp

📁 液晶电视完整代码可实现人机界面
💻 CPP
📖 第 1 页 / 共 3 页
字号:
	*data_len = strlen(out_data);  	return 0;}int	AddRMB( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data ){	char tmp[100]="000000000000000000";	int len;	int i;	len = strlen(in_data);	if(len>15)	{		strcpy(out_data,in_data);   	}	else	{		tmp[0] = 'R';		tmp[1] = 'M';		tmp[2] = 'B';						for( i=18-len; i<18; i++ )		{			tmp[i] = in_data[i+len-18];		}		strcpy(out_data,tmp);		out_data[18]='\0';	}	*data_len = strlen(out_data);  	return 0;}int	FormatAmount( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data ){	char	strTemp[50];	memset(strTemp, 0, sizeof(strTemp));	DelDotAmount(argc, argv, in_data, data_len, strTemp);	AddRMB(argc, argv, strTemp, data_len, out_data);	*data_len = strlen(out_data);		return 0;}// Get the current Dateint SysDate(int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data){	time_t ltime;	struct tm tmst;		ltime = time(NULL);	memcpy(&tmst,localtime(&ltime),sizeof(tmst));	sprintf(out_data,"%4d%02d%02d",tmst.tm_year + 1900,tmst.tm_mon + 1,\		tmst.tm_mday);	*data_len = 8;		return 0;}// Get the current Timeint SysTime( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data){	time_t ltime;	struct tm tmst;		ltime = time(NULL);	memcpy(&tmst,localtime(&ltime),sizeof(tmst));	sprintf(out_data,"%4d%02d%02d%02d%02d%02d",tmst.tm_year + 1900,\		tmst.tm_mon + 1, tmst.tm_mday,tmst.tm_hour,tmst.tm_min,tmst.tm_sec);	*data_len = 14;		return 0;}int L_rtrim(char *str){	int i;	i=strlen(str)-1;	if(i<0)		return(0);	while(str[i]=='\n'||str[i]==' '||(i>0&&str[i]=='\xa1'&&str[i-1]=='\xa1'))		{		if (str[i]=='\xa1')			{			str[i-1]='\0';			i = i-2;			}		else			{			str[i]='\0';			i--;					}		if(i<0)			break;		}	return(0);}int	DelDotAmount( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data ){	char sAmount[80];	char tmp[80];	int i,j;	int len;	memset(sAmount,0,sizeof(sAmount));	memset(tmp,0,sizeof(tmp));	strcpy(tmp,in_data);	for(i = 0,j = 0; tmp[i] ; i++,j++) 	{		if(tmp[i] == ','||tmp[i]=='.')			i++;		sAmount[j]=tmp[i];	}	len = strlen(sAmount);	memset(out_data,0,len+1);	memcpy(out_data,sAmount,len);	*data_len=len;		return 0;}int	AddDotAmount( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data ){	GetAmount(in_data,out_data);	*data_len = strlen(out_data);	return 0;}int GetAmount(char *in_data,char *out_data){	char sAmount[100],sAmount0[100];	char tmp[100];	int i,j,k;	int len;			memset(sAmount,0,sizeof(sAmount));	memset(sAmount0,0,sizeof(sAmount0));	memset(tmp,0,sizeof(tmp));	len = strlen(in_data);	strcpy(tmp,in_data);	for(i = 0;i<len;i++)	{		if(tmp[i] <= '9' && tmp[i] > '0')		{		strcpy(sAmount,&tmp[i]);		break;		}	}	len = strlen(sAmount);	memset(tmp,0,sizeof(tmp));	for(i = 0;i < len;i++)		tmp[i] = sAmount[len - i - 1];	memset(sAmount,0,sizeof(sAmount));	sAmount[0] = tmp[0];	sAmount[1] = tmp[1];	sAmount[2] = '.';	for(i = 3,j = 0,k = 2;j <= len ; j++)	{		if( j%4 == 3)		{			sAmount[i++] = ',';		}		else		{			sAmount[i++] = tmp[k++];		}	}	memset(tmp,0,sizeof(tmp));	len = strlen(sAmount);	for( i = 0;i < len;i++)		tmp[i] = sAmount[len - i - 1];	for(i = 0;i<len;i++)	{		if(tmp[i] <= '9' && tmp[i] > '0')		{		strcpy(out_data,&tmp[i]);		break;		}	}	return 0;}int	Fill_SBC( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data ){	char tmp[1000];	int in_len,len;	memset(tmp,0xA1,sizeof(tmp));	len = atoi(argv[1]);	in_len = strlen(in_data);	if(len <= in_len) {		strcpy(out_data,in_data);		out_data[len] = '\0';		*data_len = len;		return 0;		}			if(strcmp(argv[0],"right") == 0) {		memcpy(tmp,in_data,in_len);		tmp[len] = '\0';	}	else {		memcpy(&tmp[len - in_len],in_data,in_len);		tmp[len] = '\0';	}	strcpy(out_data,tmp);	out_data[len] = '\0';	*data_len = len;	#ifdef _DEBUG_	printf("out_data = [%s][%d]\n",out_data,strlen(out_data));	#endif	return 0;}int	TrimSpace( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data ){	int i,j = 0;	char tmp[2048];	memset(tmp,0,sizeof(tmp));	for(i = 0;i < strlen(in_data);i++)	{		if(in_data[i] != ' ') 			tmp[j++] = in_data[i];	}	strcpy(out_data,tmp);	out_data[strlen(tmp)] = '\0';	*data_len = strlen(tmp);	return 0;}// Delete SBC space from Stringint	TrimSBC( int argc, char argv[][M_MAX_PARA_LEN], char *in_data, int *data_len, char *out_data ){	int i , j = 0;	char tmp[1024];//	printf("in_data = [%s][%d]\n",in_data,strlen(in_data));	memset(tmp,0,sizeof(tmp));	for(i = 0;i < strlen(in_data);i+=2)	{		if((unsigned char)in_data[i] == 0xa1 && (unsigned char)in_data[i + 1] == 0xa1)			continue;		tmp[j++] = in_data[i];		tmp[j++] = in_data[i + 1];	}	strcpy(out_data,tmp);	out_data[strlen(tmp)] = '\0';	*data_len = strlen(tmp);	printf("out_data = [%s][%d]\n",out_data,strlen(out_data));	return 0;}//////////////////////////////////////////////////// * Added by MIQH -- 2002.04.12 // * 函数功能: 将字符串转换为ASC码->EBCD码的预备串////////////////////////////////////////////////// int Filter( int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData ){	int i;	int len;	int itemLength;	int addLength = 0;	char tmp[1000];	int cvtLength = atoi(argv[0]);		char ch = ' ';			memset(tmp,0,sizeof(tmp));	strcpy(tmp,inData);	itemLength = calculateLength( tmp );	while( itemLength > cvtLength )	{		len = strlen( tmp );		if( tmp[len-1] < 0 )		{			tmp[len-1] = '\0';			tmp[len-2] = '\0';		}		else		{			tmp[len-1] = '\0';		}		itemLength = calculateLength( tmp );			}	addLength = getAddLength( tmp );	strcpy(outData,tmp);	for( i=itemLength; i<cvtLength; i++ )	{		outData[i-addLength]=ch;	}	outData[cvtLength-addLength] = '\0';		i = strlen(outData);	if( outData[i-1]<0 )	{		if( outData[i-3]<0 )		{			outData[i-1] = ch;					outData[i-2] = ch;				}		else		{			outData[i-1] = ch;					outData[i-2] = ch;					outData[i] = ch;					outData[i+1] = ch;					outData[i+2] = '\0';				}	}		*data_len = strlen(outData);		return 0;}////////////////////////////////////////////////////// * Added by MIQH -- 2002.04.12 // * 函数功能: 计算字符串由ASC码转换为EBCD码后的长度////////////////////////////////////////////////////int calculateLength(char * itemData){	int i;	int addLength = 0;	int itemLength = strlen( itemData );		if(itemData[0]<0)	{		addLength++;	}	if(itemData[itemLength-1]<0)	{		addLength++;	}	for( i=0; i<itemLength-1; i++)	{		if( itemData[i]*itemData[i+1] < 0 )		{			addLength++;		}	}	itemLength = itemLength + addLength;	return itemLength;}////////////////////////////////////////////////////////// * Added by MIQH -- 2002.04.12 // * 函数功能: 计算字符串由ASC码转换为EBCD码后增加的长度///////////////////////////////////////////////////////// int getAddLength(char * itemData){	int i;	int addLength = 0;	int itemLength = strlen( itemData );		if(itemData[0]<0)	{		addLength++;	}	if(itemData[itemLength-1]<0)	{		addLength++;	}	for( i=0; i<itemLength-1; i++)	{		if( itemData[i]*itemData[i+1] < 0 )		{			addLength++;		}	}	return addLength;}////////////////////////////////////// // * Added by MIQH -- 2002.05.20 // * 函数功能: 由货币代码转为货币符号////////////////////////////////////// int ToCoinSymbol(int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData){	int i = 3;	char tmpdata[19];		memset(tmpdata,0,19);	if( strncmp(inData,"01",2)==0 )	{		strcpy(tmpdata,"RMB");			memcpy(tmpdata+3,inData+2,15);	}		while( tmpdata[i] == ' ' )	{		tmpdata[i++] = '0';		}	strcpy(outData,tmpdata);	*data_len = strlen(outData);		return 0;}//////////////////////////////////////////////// // Added by MIQH -- 2002.05.20 // 函数功能: 由货币符号转为货币代码//////////////////////////////////////////////// int ToCoinCode(int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData){	int i;	char tmpdata[100];		i = strlen(inData);	memset(tmpdata,0,18);	if( strncmp(inData,"RMB",3)==0 )	{		strcpy(tmpdata,"01");			memset(tmpdata+2,'0',18-i);		memcpy(tmpdata+20-i,inData+3,i-3);	}		strcpy(outData,tmpdata);	*data_len = strlen(outData);		return 0;}///////////////////////////////////////////////////// Added by chenxi -- 2002.06.08 // 函数功能: 大小额标志转换(来帐使用)///////////////////////////////////////////////////int ToTxType(int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData){	if( strlen(inData) != 1 )		return (-1);	switch( *inData ) {	case '0':		strcpy(outData,"1"); /*大额*/		break;	case '1':		strcpy(outData,"2"); /*小额*/		break;	default :			strcpy(outData,"3");		break;	}	*data_len = 1;	return 0;}/////////////////////////////////////////// // Added by chenxi -- 2002.06.08 //函数功能: 大小额标志转换(往帐使用)///////////////////////////////////////////int ToOprtType(int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData){	if( strlen(inData) != 1 )		return (-1);	switch( *inData ) {	case '1':		strcpy(outData,"0"); /*大额*/		break;	case '2':		strcpy(outData,"1"); /*小额*/		break;	default :			strcpy(outData,"2"); /*其它*/		break;	}	*data_len = 1;	return 0;}////////////////////////////////////////////// Added by MIQH -- 2002.05.21 // 函数功能: 得到发报中心或收报中心代码//////////////////////////////////////////// int GetCenterCode(int argc, char argv[][M_MAX_PARA_LEN], char * inData, int * data_len, char * outData){	char tmpdata[5];		memset(tmpdata,0,5);	memcpy(tmpdata,argv[0]+3,4);

⌨️ 快捷键说明

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