Re: [VB6 ] 問題關於利用RS-232來傳送資料
※ 引述《SmallBeeWayn (喵喵叫的蜜蜂貓)》之銘言:
: ※ 引述《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本身就是很舊的技術
: 但是一部分還是能靠第三方介面來解決的
可否請大大就針對一下我的文章幫我修改一下,因為我是vb的新手,
所以可以麻煩你幫我對我的程式碼修改一下好ㄇ
--
∵~★.°☆∵。*∵~★.°☆∵。
╭══╮ ╭╧╮╭╧╮╭╧╮
╭╯■■║═║灌║║水║║車│
╰⊙═⊙╯ ╘∞╛╘∞╛╘∞╛
☆.°∴°☆﹒﹒‧☆°∴°☆.﹒
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.162.211
推
12/25 14:45, , 1F
12/25 14:45, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章