大家帮帮忙! 如何取十六进制字符串的一段? 我在做一个串口通信的小程序,碰到一个问题: 其他的机器发了一串十六进制数据到我的电脑串口上,我如何获得其中的一段?例如其他的机器发了一串十六进制数据: 57+51+14+0c+00+12到我的电脑串口上,如何将其中的00+12换算成十进制保存起来? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这样的问题,你首先要明确接收到的数据57+51+14+0c+00+12是如何存放的----如果是一个字符串S := '57+51+14+0c+00+12',可以知道,每2个字符加一个加号为一段。 要从第5段起取两段'00+12':那就SubStr := Copy(S, 3 * 4 + 1, 5)就是了 然后可以再用这种方法取得SubStr中+前的一段和+后的一段,然后分别StrtoInt再相加就是你要的整数了----如果你在接收时直接每个数都放到了数组或StringList中,那更简单了,直接通过下标读数组 然后,如果是StringList,就StrtoInt再相加;如果是Byte数组,就直接相加...这样的问题,其实应该拿出时间来研究数据类型,简化问题,自己就找到解决方案了;如果只是把问题通报出来,即使别人给你代码,也可能不是你需要的;即使是你需要的,你直接复制到你的程序中,以后必将还会修改,到时你会更头痛。 Delphi中WebBrowser控件如何得到当前鼠标所在的超链接? rave制表时怎样的生成表格,急 我提交事务总是提示:cannot perform this operation on a closed database 該命令該如何寫 如何用系统时间减去数据表中的时间? 关于安装程序msiexec? 哪里可以下载dbdateedit组件呀 CSDN怎样保存呀?在线等待。。。。 强制类型转换为什么不行? 可以通过笔记本和手机上网吗? 如何支持自定义类型的文件拖放 delphi菜鸟询问高手
----如果是一个字符串S := '57+51+14+0c+00+12',可以知道,每2个字符加一个加号为一段。
要从第5段起取两段'00+12':那就SubStr := Copy(S, 3 * 4 + 1, 5)就是了
然后可以再用这种方法取得SubStr中+前的一段和+后的一段,然后分别StrtoInt再相加就是你要的整数了----如果你在接收时直接每个数都放到了数组或StringList中,那更简单了,直接通过下标读数组
然后,如果是StringList,就StrtoInt再相加;如果是Byte数组,就直接相加...这样的问题,其实应该拿出时间来研究数据类型,简化问题,自己就找到解决方案了;如果只是把问题通报出来,即使别人给你代码,也可能不是你需要的;即使是你需要的,你直接复制到你的程序中,以后必将还会修改,到时你会更头痛。