[VB6 ] 問題關於利用RS-232來傳送資料
小弟
利用 VB 與 RS232
來做兩台電腦的傳輸動作,但是遇到了一個問題是每次都只可以傳文字檔
不可以傳圖片或音樂檔,可否請問一下小弟遇到的問題是什麼
以下是小弟的傳送檔案原碼
--------------------------------
Private Sub Command3_Click()
Dim i As Long
Dim fn As Long
Dim SendData As Byte
If FileName <> "" Then
Command3.Enabled = False
MSComm1.CommPort = ComPort
MSComm1.Settings = Setting
MSComm1.PortOpen = True
MSComm1.Output = SendFileName & vbCrLf
MSComm1.Output = CStr(SendFileLen) & vbCrLf
fn = FreeFile
Open SendFileName For Binary Access Read As fn
ProgressBar1.Max = SendFileLen
ProgressBar1.Min = 0
For i = 1 To SendFileLen
Get fn, , SendFileLen
MSComm1.Output = Chr(SendData)
ProgressBar1.Value = i
Next
Close fn
MSComm1.PortOpen = False
MsgBox "檔案傳送結束!", vbInformation + vbOKOnly, "訊息"
Command3.Enabled = True
End If
ProgressBar1.Value = 0
End Sub
-----------
以下是接收部分
---------------
Private Sub Command2_Click()
Dim i As Long
Dim fn, fn1 As Long
Dim RecData As String
Dim data As Byte
Command2.Enabled = False
MSComm1.CommPort = ComPort
MSComm1.Settings = Setting
MSComm1.InputLen = 0
MSComm1.PortOpen = True
RecFileName = ""
RecData = ""
i = 0
Do
DoEvents
RecData = RecData & MSComm1.Input
i = InStr(RecData, vbCrLf)
If i > 0 Then
RecFileName = Left(RecData, i - 1)
End If
Loop Until RecFileName <> ""
Text1.Text = RecFileName
RecData = Right(RecData, Len(RecData) - Len(RecFileName) - Len(vbCrLf))
RecFileLen = 0
i = 0
Do
DoEvents
RecData = RecData & MSComm1.Input
i = InStr(RecData, vbCrLf)
If i > 0 Then
RecFileLen = Val(Left(RecData, i - 1))
End If
Loop Until RecFileLen <> 0
Text2.Text = RecFileLen
RecData = Right(RecData, Len(RecData) - Len(CStr(RecFileLen)) - Len(vbCrLf))
ProgressBar1.Max = RecFileLen
ProgressBar1.Min = 0
Do
DoEvents
RecData = RecData & MSComm1.Input
ProgressBar1.Value = Len(RecData)
Loop Until Len(RecData) = RecFileLen
On Error Resume Next
Kill "tempfile.txt"
fn = FreeFile
Open "tempfile.txt" For Binary Access Write As fn
Put fn, , RecData
Close fn
fn = FreeFile
Open "tempfile.txt" For Binary Access Read As fn
fn1 = FreeFile
Open Text1.Text For Binary Access Write As fn1
Do While Not EOF(fn)
Get fn, , data
If (data <> Chr(13)) And (data <> Chr(10)) And (data <> Chr(0)) Then
Put fn1, , data
End If
Loop
Close fn1
MSComm1.PortOpen = False
MsgBox "檔案接收結束", vbInformation + vbOKOnly, "訊息"
Command2.Enabled = True
ProgressBar1.Value = 0
End Sub
--
∵~★.°☆∵。*∵~★.°☆∵。
╭══╮ ╭╧╮╭╧╮╭╧╮
╭╯■■║═║灌║║水║║車│
╰⊙═⊙╯ ╘∞╛╘∞╛╘∞╛
☆.°∴°☆﹒﹒‧☆°∴°☆.﹒
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.68.162.213
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
Visual_Basic 近期熱門文章
PTT數位生活區 即時熱門文章