作者bruce476 (布鲁斯)
看板Visual_Basic
标题[VB6 ] 课本上 RS232通讯问题
时间Tue Jan 18 17:05:17 2011
小弟是程式初阶班
最近在自学VB6 并撰写一个通讯的程式
从书本上得到程式码 但有些地方不明白
想请教各位先进 希望能帮忙指导一下
Q1: Dim S3(1 To 1) As Byte
其中输出的地方有上述这行宣告,不晓得其用意在哪?
Q2: For i = LBound(InByte) To UBound(InByte)
Buf = Buf + Hex(InByte(i)) + Chr(32)
Next i
上述是输入读取的地方,小弟认知是这是RS232通讯时读取
通讯资料的第一笔到最後一笔的方式并转成16进制.不知是否可以这样解释。
Q3: Buf = ""
Buf = Comm1.Input '清空输入缓冲区
上述第一个Buf = ""也是清空的意思吗?
为什麽要有这个动作?因为删除後好像对程式没有影响
第二个Buf = Comm1.Input 课本说是清空,但未何要有这样的动作产生?
不清空会有何影响?
谢谢
图示如下
http://ppt.cc/tuW2
程式码如下
Option Explicit
''''''''''''''''''''''''''''''''''''''
'宣告二个位元组型态的变数阵列
'一个用於储存输出资料
'一个用於储存输入资料
''''''''''''''''''''''''''''''''''''''
Dim OutByte() As Byte
Dim InByte() As Byte
''''''''''''''''''''''''''''''''''''''
'使用命令按钮控制项
'结束系统
'若未执行关闭通讯埠的动作,则
'系统结束时,同时也会关闭串列通讯埠
''''''''''''''''''''''''''''''''''''''
Private Sub CmdExit_Click()
End
End Sub
''''''''''''''''''''''''''''''''''''''
'使用命令按钮控制项
'使用Input指令将被传送的资料取入
'将位元组资料以16进位表示并存入Buf变数
'将Buf变数内容显示到接收的文字框中
''''''''''''''''''''''''''''''''''''''
Private Sub CmdReceive_Click()
Dim i%, Buf$
Buf = ""
InByte = Comm1.Input
For i = LBound(InByte) To UBound(InByte)
Buf = Buf + Hex(InByte(i)) + Chr(32)
Next i
txtReceive.Text = Buf
End Sub
''''''''''''''''''''''''''''''''''''''
'使用命令按钮控制项
'将使用者的输入字串先存入Buf变数中
'使用StrConv将Buf变数作型态转换
'再将转换完的阵列利用Output指令送出
''''''''''''''''''''''''''''''''''''''
Private Sub CmdSend_Click()
Dim Buf$, i%
Dim S3(1 To 1) As Byte
Buf = Trim(txtSend.Text)
OutByte = StrConv(Buf, vbFromUnicode) '转换字串
Buf = Comm1.Input '清空输入缓冲区
Comm1.Output = OutByte '送出资料
End Sub
''''''''''''''''''''''''''''''''''''''
'表单的载入事件
'在此作开启通讯埠的动作
'在开启之前,我们也可以将通讯参数先行指定後
'然後再开启通讯埠
''''''''''''''''''''''''''''''''''''''
Private Sub Form_Load()
Comm1.PortOpen = True
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.136.163
1F:推 horngsh:Q1: S3阵列并没有被使用到 01/18 17:20
2F:→ horngsh:Q2:将从RS232读到的资料(是一个byte型态阵列)中的每一个位 01/18 17:22
3F:→ horngsh:元组(可将它看成是最小范围值的整数)转成16进位整数,并加 01/18 17:24
4F:→ horngsh:一个空格在其後 01/18 17:25
5F:→ horngsh:你的Buf只是一个区域字串变数, 用来存放(接收)Comm1元件读 01/18 17:26
6F:→ horngsh:进来的值.Buf = ""是将字串变数内容变成空字串. 01/18 17:27
7F:→ bruce476:谢谢楼上的解说. 01/19 01:12