[VB6 ] 課本上 RS232通訊問題
小弟是程式初階班
最近在自學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
推
01/18 17:20, , 1F
01/18 17:20, 1F
→
01/18 17:22, , 2F
01/18 17:22, 2F
→
01/18 17:24, , 3F
01/18 17:24, 3F
→
01/18 17:25, , 4F
01/18 17:25, 4F
→
01/18 17:26, , 5F
01/18 17:26, 5F
→
01/18 17:27, , 6F
01/18 17:27, 6F
→
01/19 01:12, , 7F
01/19 01:12, 7F