第一次做通讯,不怎么明白!
我写的接收数据如下:
setLength(mget,mscomm1.InBufferCount); //mget是一个array of byte
mget:=AComm.Input;
现在这个mget里面的数据是不是就是接收到的16进制的一串数据呢?如果是的话,我应该怎么把他们转成string呢?
比如说mget的数据是300AFF,即mget[0]=$30,mget[1]=$31,mget[2]=$32,我要全部转成一个string 就是'303132',而不是'012'三个字符。
我写的接收数据如下:
setLength(mget,mscomm1.InBufferCount); //mget是一个array of byte
mget:=AComm.Input;
现在这个mget里面的数据是不是就是接收到的16进制的一串数据呢?如果是的话,我应该怎么把他们转成string呢?
比如说mget的数据是300AFF,即mget[0]=$30,mget[1]=$31,mget[2]=$32,我要全部转成一个string 就是'303132',而不是'012'三个字符。
解决方案 »
- 哪里有Delphi5.0下载?
- 哪位大侠看看,这样可以实现吗
- 关于MDI窗体设计问题
- delphi中用ADO的Microsoft OLE DB连接Oracle不行,其他可以,怎么解决
- 奇怪!!!!!!!!!!!!!!!!!!!!!!!!!!!!用ADO不行,用ODBC就可以?why?
- 如何将excel文件导入数据库,操作系统是98,请帮忙
- DB转换成EXCEL的问题?
- 用DELPHI写的程序崩溃时,怎么能做到像QQ或者迅雷哪样自动重启?
- 请问::
- 用BDE与sql server 相连 ,怎么配置bde呀?急!!!! 多谢
- Windows 2000系统写的程序在98或XP中运行不了,怎么办???
- 如何把定期生成数据库记录写成计划任务,就算程序关闭都会自动执行?
for i := 1 to High(mGet) do
s := s + intToHex(mget[i-1], 2);http://lysoft.7u7.net
例如收到303132,就转成'303132',而不是'012'三个字符组成的string。
按照上面的写法还是有问题,代码如下:
AComm.Output:=mbuffer; //mbuffer是一个array of byte
sleep(350);
setLength(mget,AComm.InBufferCount);
mget:=AComm.Input;
str:=''; //str是一个string
for i:=1 to High(mget) do
str:=str+intToHex(mget[i-1],2);
result:=str;
这样写就会出现Invalid argument错误,为什么???
若写成如下:
AComm.Output:=mbuffer; //mbuffer是一个array of byte,发送没问题
sleep(350);
str:=AComm.Input;
result:=str;
结果收到的就是由三个字符组成的string,即'012',而不是我想要的'303132'。
正确的写法应该是怎么样的???很急!!!