首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

串口接收的十六进制字符串变换为十进制数字显示

2012-11-08 
串口接收的十六进制字符串转换为十进制数字显示如接收EB CC A0 FF ...显示为235 204 160 255 ...对C++ Bui

串口接收的十六进制字符串转换为十进制数字显示
如接收EB CC A0 FF ...
显示为235 204 160 255 ...
对C++ Builder 6 完全不懂。希望大侠能给个代码。感谢!

C/C++ code
void __fastcall TForm1::MSComm1Comm(TObject *Sender){   char   szBuf[500]={0};    int   i,   j;    OleVariant   RxBuff;     switch   (MSComm1-> CommEvent)    {        case   comEvReceive:            if   (MSComm1-> InBufferCount   >   0)   {                RxBuff=   MSComm1-> Input;                j=   RxBuff.ArrayHighBound(1);                for   (i=0;   i <=j;   i++)                    szBuf[i]=   RxBuff.GetElement(i);                szBuf[i]=   NULL;                //ifdef   _DEBUG                Memo1->Text= Memo1->Text+AnsiString(szBuf);//显示在这里                //RichEdit1-> Lines-> Add(AnsiString(szBuf));                //#endif            }            break;     } }


[解决办法]
C/C++ code
Memo1->Text= Memo1->Text + " " + IntToStr(StrToInt(String("0x") + szBuf));
[解决办法]
探讨
谢谢,刚测试了下,发送一个数据,显示OK,如果我一次性接收到一串“EB CC A0 FF ...”数据怎么处理,查了下,好像不能用SPLIT函数,怎么按空格分开后再转换后显示呢?

[解决办法]
szBuf[0]代表第一个,sBuf[1]代表第二个数,以此类推就是

热点排行