TLV编解码【编程】
来源:互联网 发布:知乎红人是什么意思 编辑:程序博客网 时间:2024/04/19 13:00
感觉做的方法不好,仅用于备份,仅供参考!
不多说了,直接上代码!
#include <iostream>using namespace std;#define M 10int dataLength = 0;struct NODE{char strTag[100];char strLen[100];char strVale[100];bool isNoLen;int value;}nodeData[M];int GetNumLength(char *ppstr){char*pstr = strdup(ppstr);if(pstr==NULL)return 0;int num1 = 0;int num2 = 0;char *pSaveStr = strtok(pstr,",");while(pSaveStr!=NULL){sscanf(pSaveStr,"%x",&num2);num1 *= (16*16);num1 += num2;pSaveStr = strtok(NULL,",");}delete pstr;return num1;}bool GetMsg(char *pstr){while(pstr!=NULL){char *pSavest1 = pstr+30;if(*pSavest1 == '\0')return false;strncpy(nodeData[dataLength].strTag, pstr, 19);strncpy(nodeData[dataLength].strLen, pstr+20, 9);int nunLength = GetNumLength(nodeData[dataLength].strLen);if(nunLength!=0)nodeData[dataLength].isNoLen = false;else nodeData[dataLength].isNoLen = true;strncpy(nodeData[dataLength].strVale, pstr+30, nunLength*5);nodeData[dataLength].value = GetNumLength(nodeData[dataLength].strVale);pstr=pSavest1+nunLength*5;dataLength++;if(*pstr=='\0')return true;}return true;}void PaiXu(){for (int i=0; i<dataLength; i++){for (int j=i+1; j<dataLength; j++){if(nodeData[i].value<nodeData[j].value)//sawp{struct NODE dateTemp;memcpy(&dateTemp, &nodeData[i], sizeof(struct NODE));memcpy(&nodeData[i], &nodeData[j], sizeof(struct NODE));memcpy(&nodeData[j], &dateTemp, sizeof(struct NODE));}}}}void main(){char strInput[1000] = {'\0'};memset(nodeData, '\0', M*sizeof(struct NODE));cin>>strInput;if(!GetMsg(strInput)){cout<<"false"<<endl;return;}PaiXu();for (int i=0; i<dataLength; i++){cout<<nodeData[i].strTag<<","<<nodeData[i].strLen;if(i!=dataLength-1) //no endif(nodeData[i].isNoLen)//no lengthcout<<",";elsecout<<","<<nodeData[i].strVale<<",";elseif(!nodeData[i].isNoLen)cout<<","<<nodeData[i].strVale;}cout<<endl;}
0 0
- TLV编解码【编程】
- 华为编程大赛——TLV编解码
- TLV 格式及编解码示例
- 【通信】TLV 格式及编解码示例
- TLV 格式及编解码示例
- TLV格式及编解码示例
- TLV 格式及编解码示例
- TLV 格式及编解码示例
- PBOC-TLV编码格式解码
- java编程中的编解码详解
- 编解码
- PBOC/EMV之TLV编码与解码
- PBOC/EMV之TLV编码与解码
- PBOC/EMV之TLV编码与解码
- PBOC/EMV之TLV编码与解码
- JSON和TLV,两种编解码的比较
- PBOC/EMV之TLV编码与解码
- Java网络编程-对象编解码方案、优劣对比
- Why use MTP instead of USB Mass Storage
- d3js svg:text
- SGU 495 Kids and Prizes(概率dp)
- 自动1121黄浩然
- VB6 IP地址+网卡地址+网卡类型
- TLV编解码【编程】
- Invalid result location value/parameter 解决办法
- 用SVN下载编译Spring3.2.4源码导入eclipse
- Leetcode Restore IP Addresses
- 第二周作业
- android 保存bitmap到sdk中
- Java进阶篇--容器(二)
- sqlserver2005 express 及SSMS安装小记
- python 框架 twisted