我现在有一组数据比如“%12345678%14224323%23792438%67276361。”每9位一个循环8位数据是随便的,
现在要把这九个实时数据分开放入两个Text1.Text和Text2.Text里显示出来,如“%12345678”就显示为在Text1.Text内显示1234,  在Text2.Text显示5678。“%”作为一个识别的符号。 
不知怎么处理,请问哪位帮帮忙,救我一命!真是我的大恩人!

解决方案 »

  1.   

    楼主貌似没有表达清楚你只有text1 和text2只能显示一组数据
    Temp="%12345678"
    Temp=Replece(Temp,"%"," ")
    Text1.text=Left(Temp,4)
    Text2.text=Right(Temp,4)
      

  2.   

    哦 我是用VB做单片机与PC机的串行通讯的  现在连续收到这样的数据%xxxxxxxx%xxxxxxxx%xxxxxxxx%xxxxxxxx...
    x看作是任意的字符数  一共9个字符一组
    我想把数据以%为分割符 然后把前四位的x显示在Text1.Text中  把后四位x显示在Text2.Text中 并以此为循环,把每收到的9个字符都分别显示就可以了,谢谢你,帮帮忙!
      

  3.   

    如1F所说的, 你必需要用数组的Text1与Text2否则只能看到最后那一组的内容.出差再外没有VB可测试,随手打的,难免有错,请勿见怪,不过思路就是这样....dim aa$, i%,s
    private sub command1_click()
       aa="%12345678%14224323%23792438%67276361"
       s=split(aa,"%")
       for i=1 to ubound(s)
          if i>=text1.count then load text1(i):text1(i).visible=true:Text1(i).move text1(i-1).left,text1(i-1).top+text1(i-1).height+100
          if i>=text2.count then load text2(i):text2(i).visible=true:Text2(i).move text2(i-1).left,text2(i-1).top+text2(i-1).height+100
          text1(i).text=left(s(i),4)
          text2(i).text=right(s(i),4)
       next i
    end sub
      

  4.   

    像你这个vb和单片机通信,是有时间间隔的吗?如果是一次的到一串数据,再分割就好做了
    Dim str As String
    str = MSComm1.Inputfor i=1 to len(str) 
      if Mid(str,i,1)<>"%" then
          strData=Mid(str,i+1,8)
          text1.text=left(strData,4) 
          text2.text=right(strData,4) 
          i=i+7
       end if  
    next i 
    如果是有定时器的,那你要有判断接受的数据长度了
    再用数组保存或者用字符串(每收到到%和%之间的八个数)就分割输出
      

  5.   

    可以先用split函数截取好数据 保存在数组里 然后在每一组数据往Text控件里赋值的时候 再来判断长度 如果满足一条完整数据的长度 则显示 否则抛弃 继续下一组数据  
      

  6.   

    Option Explicit
        Dim strData As String
    Private Sub Form_Load()
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.CommPort = 1
        MSComm1.RThreshold = 9
        MSComm1.PortOpen = True
        MSComm1.InputMode = comInputModeText
    End SubPrivate Sub MsComm1_OnComm()
        Select Case Me.MSComm1.CommEvent
            Case comEvReceive
                '此处添加处理接收的代码
                strData = MSComm1.Input
                If Mid(strData, 1, 1) = "%" And Len(strData) = 9 Then
                    Text1 = Mid(strData, 2, 4)
                    Text2 = Mid(strData, 6, 4)
                Else
                    strData = ""
                End If
        End Select
    End Sub
      

  7.   

    楼主,如何结贴请参阅下列网址的【竹子跟你说如何结贴!】 
    http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
    非常赞赏楼主的坦承。
      

  8.   

    http://topic.csdn.net/u/20080428/22/c11c7fd5-d4b0-472b-b134-2b55a0a20551.html
      

  9.   

    我是GIVEME5,我是来还分的,你们别客气!报道下就好!
    http://topic.csdn.net/u/20080428/22/c11c7fd5-d4b0-472b-b134-2b55a0a20551.html