Re: [VB6 ] 問題關於利用RS-232來傳送資料
※ 引述《fbi1115 (大偵探)》之銘言:
: 小弟
: 利用 VB 與 RS232
: 來做兩台電腦的傳輸動作,但是遇到了一個問題是每次都只可以傳文字檔
: 不可以傳圖片或音樂檔,可否請問一下小弟遇到的問題是什麼
文字檔是屬於Text形式
圖片檔或是音樂檔都是Binary形式
: MSComm1.Output = SendFileName & vbCrLf
: MSComm1.Output = CStr(SendFileLen) & vbCrLf
我不太理解這樣傳的意義....
而且RS232通常只用vbCr而非vbCrLf
: For i = 1 To SendFileLen
: Get fn, , SendFileLen
: MSComm1.Output = Chr(SendData)
你可以嘗試一下Asc(Chr(100))跟Asc(Chr(200))的結果
由於Chr(100) = "d" 所以可以正確Asc回來
但是200不是正確的碼值, Asc回來是0
你如果改ChrB或許搞不好能夠傳
但是最正規的用法應該是丟給位元組陣列才對
: -----------
: 以下是接收部分
: ---------------
MSComm1.InputMode有指定為comInputModeBinary嗎?
至於你接收端的程式也是完全當字串來處理
當然是傳不了圖片的
==========================
建議你閱讀MSDN「使用 Communications 控制項」一章
尤其是「管理接收和傳送緩衝區管理接收和傳送緩衝區」一節
=================以下引用=================
管理接收和傳送緩衝區
如上面所說明的,在開啟連接埠以後,接收和傳送緩衝區就會被建立。接收和傳送緩衝區
用來儲存傳入的資料和傳出的資料。為了讓使用者能夠管理這些緩衝區,Communications
控制項提供了一系列的屬性。利用這些屬性,您將可以放置或擷取資料、傳回每個緩衝區
大小、處理文字和二進位數資料。如何正確地管理這些緩衝區是 Communications 控制項
應用中的一個重要課題。
接收緩衝區
Input 屬性被用來儲存和接收從接收緩衝區擷取的資料。例如,如果您希望從接收緩衝區
擷取資料,並將其顯示在一個文字方塊中,則可以使用下面的程式碼:
TxtDisplay.Text = MSComm1.Input
如果您需要擷取接收緩衝區中的所有內容,就必須將 InputLen 屬性設定為 0。這可以在
設計階段或執行階段設定。
InputMode 屬性可以設定為如下的 Visual Basic 常數:comInputModeText 或
comInputModeBinary,即您可分別以文字或二進位格式接收傳入的資料。此資料將以字
串或二進位資料的位元組陣列之形式存取。ANSI 字元集合的資料應使用
comInputModeText;而對其它資料,比如了包含控制字元、Nulll值等的資料,l應使用
comInputModeBinary。
每接收到一個位元組,該位元組都會被移入接收緩衝區,同時 InBufferCount 屬性值會
加一。此時,就可用 InBufferCount 屬性來檢查接收緩衝區中位元組的數目。將此屬性
的值設定為 0,即可清空接收緩衝區。
傳送緩衝區
Output 屬性被用來對傳送緩衝區發出指令和資料。
與 Input 屬性類似,資料可以用文字或二進位格式傳送。Output 屬性必須用字串傳送文
字,或用位元組陣列傳送二進位資料。
您可用 Output 屬性傳送指令、文字字串或位元組陣列資料。例如:
'傳送 AT 指令
MSComm1.Output = "ATDT 555-5555"
'傳送文字字串
MsComm1.Output = " This is a text string "
'傳送位元組陣列資料
MSComm1.Output = Out
如前面提到的,每傳送一行都必須以 Return 鍵 (vbCr)結束。在上例中,Out 被定義為
位元組陣列變數:Dim Out() As Byte。假如它是字串變數,則應定義為:Dim Out() As
String。
您可用 OutBufferCount 屬性監看傳送緩衝區中的位元組數目。將該值設定為 0 即可清
空傳送緩衝區。
=================以上引用=================
其實VB提供的RS232傳輸介面有一些問題
尤其是沒辦法等時傳輸, 以及會掉資料的問題
雖然部份原因是因為RS232本身就是很舊的技術
但是一部分還是能靠第三方介面來解決的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.204.46
推
12/23 18:23, , 1F
12/23 18:23, 1F
→
12/23 18:24, , 2F
12/23 18:24, 2F
討論串 (同標題文章)
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章