主题:在Foxpro中如何用Mscomm发送16进字符A9?
lidong883545
[专家分:20] 发布于 2008-12-12 11:19:00
请问专家:在Foxpro中如何用Mscomm发送16进字符串?
我要发送的是170个16进数字,从DBF中读取:A9 00 00 00 10 00 00 30 34 36 00 00 等,接收为文本。现在无法发送A9,其他正常。
谢谢!
最后更新于:2008-12-13 13:30:00
回复列表 (共19个回复)
11 楼
lidong883545 [专家分:20] 发布于 2008-12-14 22:49:00
不行!我发帖前就是用你类似的方法.
12 楼
lidong883545 [专家分:20] 发布于 2008-12-15 20:58:00
我用VB解决了问题(从网上东拼西凑)。
13 楼
cbl518 [专家分:57140] 发布于 2008-12-15 21:21:00
[quote]
由于中文操作系统的原因,CHR()无法识别ASCII大于127的字符,VB有二进制变量,但VFP没有。我现在准备用VB编个发送小程序,用VFP调用。zfh630528你能否帮我编一个,具体发送和接受的内容我自己修改,我的EMAIL:107041038@qq.com,谢谢![/quote]
VFP 提供了二进制变量!!!
14 楼
lidong883545 [专家分:20] 发布于 2008-12-15 22:27:00
版副:你好!能否讲详细点,多谢!!!!!!!
15 楼
zfh630528 [专家分:130] 发布于 2008-12-16 21:37:00
是啊,请讲解一下VFP的二进制变量。谢谢!
16 楼
zfh630528 [专家分:130] 发布于 2008-12-16 21:52:00
1楼,请再用这个方法试试:Thisform.olecontrol1.Output=CREATEBINARY(CHR(ASC(0hA9)))
试后,请把结果在此贴中告知,谢谢!
17 楼
lidong883545 [专家分:20] 发布于 2008-12-31 11:51:00
Thisform.olecontrol1.Output=CREATEBINARY(CHR(ASC(0hA9))) 错的。
ASC(0hA9)的语法也错的。
cbl518 只说了“VFP 提供了二进制变量!!!”,没有解决方案!
在 Visual FoxPro 中,二进制数据可以包含在字符串中,用 CRETEBINARY()函数将它转换为二进制字符串形式,但在中文操作系统中Foxpro用Mscomm不能发送二进字符串!,英文操作系统我没有试过。估计此路不通!!
18 楼
zfh630528 [专家分:130] 发布于 2009-01-01 20:45:00
噢,我忘了告诉我了,我用的是VFP9.0中文汉化版,已经试验了,可以发送“A9”......,AScii码大于128的字符。Thisform.olecontrol1.Output=CREATEBINARY(CHR(ASC(0hA9))) 是可以的。实际上,Thisform.olecontrol1.Output=0hA9即可。
我来回复