# Re: 请问VB通讯传送与接收binary data的问题

Posted by 大头 on April 01, 1999 at 09:45:34:

In Reply to: 请问VB通讯传送与接收binary data的问题 posted by Zive on April 01, 1999 at 09:05:27:

: 请问各位VB高手：
: ( VB 4.0/5.0 专业版 Win95)
: VB在4.0中的Mscomm control对于hex 80H 以上的字元无法正确的传送与接
: 收而在讨论区中经常见到有人提到VB 5.0以上已经修正此一Bug但经小弟测
: 试VB 5.0的Mscomm control对于hex 80H 以上的字元依然无法正确的接收请问
: 该Bug是否已经真正的修正? 现在的VB 6.0是否也有相同的问题?或者有其他
: 我不知道的方法可解决此一问题?
: 小弟目前想购买VB 6.0升级版解决此一问题但却担心此一Bug在VB 6.0依
: 然存在,请各位高手能为小弟澄清此一问题
: 以下附上小弟的一段小小的测试程式

: Dim FileData(10) As Byte

: Private Sub Command1_Click()
: FileData(1) = 254
: MSComm1.Output = Chr$(FileData(1))
: End Sub

: Private Sub Form_Load()
: MSComm1.PortOpen = True
: End Sub

: Private Sub Form_Unload(Cancel As Integer)
: MSComm1.PortOpen = False
: End Sub

: Private Sub MSComm1_OnComm()
: Dim TmpStr As String
: Dim StrLen As Long, I As Long
:
: While MSComm1.InBufferCount > 0
: TmpStr = MSComm1.Input
: StrLen = Len(TmpStr)
: For I = 1 To StrLen
: FileData(I) = CByte(Asc(Mid(TmpStr, I, 1)))
: Next I
: TmpStr = ""
: Wend
: End Sub
: '在
: 'Private Sub Command1_Click()
: ' FileData(1) = 254
: ' MSComm1.Output = Chr$(FileData(1))
: 'End Sub
: '当中 FileData(1) 小于 128 以下时传送及接收皆正常
: '但是当 FileData(1) 大于等于 128 以上时某些特定 Code 传送正常
: '但接收却为空字元 "" ,如上例: 当 FileData(1) = 254
: 'Private Sub MSComm1_OnComm() 程式执行结果如下:
: ' MSComm1.InBufferCount > 0 为 Ture
: ' 当 TmpStr = MSComm1.Input 后
: ' StrLen = Len(TmpStr) 时 StrLen = 0
: '即 MSComm1.InBufferCount > 0 但 TmpStr = MSComm1.Input 却为空字元 ""
: '注:以上测试方式为通讯埠2,3脚短路下所测得的结果

试试这个吧 !!

ReDim O_DataArray(1 To 10) As Byte

for i = 125 to 134
O_DataArray(i-124 ) =i
next i

mscomm1.output =O_DataArray()

试试看吧!!

Follow Ups:

- Re: 请问VB通讯传送与接收binary data的问题 dar 18:07:31 4/07/99 (0)