如何使用mscomm控件发送 值>128 的字符?

alexshao1978 2003-12-12 10:38:37
使用MSCOMM控件,但是发现使用 MSCOMM1.OUTPUT = CHR(139)时发送的不是139而是0,不明白如何发送二进制数据,请各位大虾指教
...全文
97 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lnwwh 2003-12-23
  • 打赏
  • 举报
回复
发送
dim dynamicbyte() as byte
..
..
redim dynamicbyte(1 to n)
for i = 1 to n
dynamicbyte(i) = var(i)
next i
mscomm1.output = dynamicbyte
接收
dim getbyte() as byte
..
..
getbyte = mscomm1.input
for i = lbound(getbyte) to ubound(getbyte)
var(i) = getbyte(i)
next i
mendoor 2003-12-14
  • 打赏
  • 举报
回复
是的,MSCOMM控件不能发送大于128的ASCII码,但是,我们仍然可以通过别的方法来实现ASCII码的发送。

考虑到一个BYTE型的数据是8位的,即恰好是2^8=256的,所以,我们可以通过把大于128的ASCII码转换成BYTE型,然后再传即可。

例,欲传ASCII码为139的字符
Dim bytAscii as byte
bytAscii=139
mscomm1.output=bytAcsii

如果是有多个字符的话,可以使用动态的BYTE数组。
flc 2003-12-14
  • 打赏
  • 举报
回复
关注
学习

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧