现在用VB做一个串口发送文件的程序!
在把文件打开的时候用的是BYTE类型的!
放到数组里面的!在本地写入新的文件没有问题1
通过串口发送的时候接收端写入文件的时候出错!
写入一些 的乱码!不知道那位做过着方面的程序!
帮忙!
谢谢!

解决方案 »

  1.   

    我做过
    Dim aInitStr(0) As Byte
     aInitStr(0) = &HD
     MSComm1.InputLen = 0
    MSComm1.OutBufferCount = 0
    MSComm1.Output = aInitStr
        Do While MSComm1.OutBufferCount <> 0
            DoEvents
        Loop
      

  2.   

    Dim TransmitDate As String
    Dim TransmitBuffer()  As ByteTransmitBuffer()='''初始化发送字串
    TransmitDate =TransmitBuffer()
    com.output=TransmitDate '''''注意,此时文件是作为二进制发出的接受时,应设置com.InputMode = comInputModeBinary'''二进制fangshi Dim ReceiveBuffer As String
    ReceiveBuffer = com.Input
    '显示接收数据
    Dim ReceiveData As String
    If LenB(ReceiveBuffer) > 0 Then
               For I = 1 To LenB(ReceiveBuffer)
                  ReceiveData  = ReceiveData  + IIf(Len(Hex(AscB(MidB(ReceiveBuffer, I, 1)))) = 1, "0" + Hex(AscB(MidB(ReceiveBuffer, I, 1))), Hex(AscB(MidB(ReceiveBuffer, I, 1))))               
               Next I
    End If
      

  3.   

    谢谢!
    两个朋友可以说的明白一点吗!
    我是直接在ONCOMM事件里的!
    想在那里直接写入文件!
    结果出错1
    用按钮接收的时候可以的!INPUTLEN =1
    就是需要一个字节的接收然后 写入文件!
    能不能写在ONCOMM的事件里面!
    谢谢!
      

  4.   

    Private Sub MSComm1_OnComm()
    Select Case MSComm1.CommEvent
    Case comEvReceive
    Dim Buffer As Variant 
    Dim rd() As Byte
    Dim nn,si As Integer
    MSComm1.InputMode = comInputModeBinary
    nn = MSComm1.InBufferCount '串口等待读取的数的个数
    MSComm1.InputLen = 1 '每次只读一个数
    For si = 1 To nn 
    Buffer = MSComm1.Input
    rd = Buffer '每次都是rd(0)
    Label1.Caption = rd(0)
    next
    end select
    end sub
      

  5.   

    谢谢DUQIOU!
    但是这样传送的文件只能在4817字节一下的!
    大的文件不能传送!怎么办呢?