当前位置:编程学习 > VB >>

VB接收多串数据问题

Private Sub MSComm1_OnComm()
    Dim bytInput() As Byte
    Dim intInputLen As Integer
    Dim n As Integer
    Dim receive_Str As String
    Dim a As String
    Select Case MSComm1.CommEvent
        Case comEvReceive
            MSComm1.InputMode = 1                    '0:文本方式,1:二进制方式
            intInputLen = MSComm1.InBufferCount
            bytInput = MSComm1.Input
            
            For n = 0 To intInputLen - 1
               Text1.Text = Trim(Text1.Text) & " " & IIf(Len(Hex$(bytInput(n))) > 1, Hex$(bytInput(n)), "0" & Hex$(bytInput(n)))    
    Next n
    End Select    
End Sub

比如单片机连续发送 01 02 03 04 05 五组数据
用VB接收后在Text1可以显示01 02 03 04 05,但我想把每组数据分别放到Text1到Text5显示出来,请问各位高手应该怎么编写程序?



--------------------编程问答-------------------- --------------------编程问答-------------------- http://download.csdn.net/source/1262066
看看这个,你就明白了 --------------------编程问答-------------------- 那个只是把一串数据显示在Text里,我要的效果是Text1.Text=01 
02 03 04 05  --------------------编程问答-------------------- 那个只是把一串数据显示在Text里,我要的效果是如何实现
                                             Text1.Text=01 
                                       Text2.Text=02 
                                       Text3.Text=03 
                                       Text4.Text=04 
                                       Text5.Text=05  --------------------编程问答-------------------- 假如呢接受过来的字符串是strInput

dim intP as integer
dim strP as string
for intP=1 to 5
    strP=Mid(strinput,2*intP-1,2)
    select case intP
        case 1
            Text1.text=strP
        case 2
            Text2.text=strP
        case 3
            Text3.text=strP
        case 4
            Text4.text=strP
        case 5
            Text5.text=strP
    end select
next intP

其实最好的是用文本框数组直接一个For循环解决问题,用不着Select语句。 --------------------编程问答-------------------- 太感谢了Veron_04!^_^ --------------------编程问答-------------------- 请问:strP=Mid(strinput,2*intP-1,2)是什么意思啊? --------------------编程问答-------------------- 楼主把text做成数组会更简单
dim as() as string
as=split(strinput," ")
for i= 0 to 4 
text1(i)=as(i)
next --------------------编程问答-------------------- 高手! --------------------编程问答-------------------- 不过好像有语法错误... --------------------编程问答-------------------- dim astr() as string 
astr=split(strinput," ") 
for i= 0 to 4 
text1(i)=astr(i) 
next  --------------------编程问答-------------------- 用二进制方式收发数据,将接收来的数据存入Byte数组中,分别把每一个数组元素的值显示到对应的文本框中即可。 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- --------------------编程问答-------------------- 我也在做相关的,不会啊,学习
补充:VB ,  COM/DCOM/COM+
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,