作者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