现有一个字符串如下:
"Tu 15:35:00 U06 N01111A MPH    36 KPH    59 FLOW   6 OCC   666 HR  2239 SR      133    "
字符串中间的空格数不太一致,如何获取这样一个数组,
b(0)="15:35:00"
b(1)="N01111A"
b(2)="36"
b(3)="59"
b(4)="6"
b(5)="666"
b(6)="2239"
b(7)="133"
也就是把每个字母后面的值取出来,如Tu 后面的15:35:00,U06后面的N01111A大家帮帮忙呀

解决方案 »

  1.   

    我是用split函数处理,弄了半天还是不成功!
      

  2.   

    用string
    先建一个过滤用的字符串数组{"Tu", "U06 ","MPH","KPH "}.
    然后再进行处理,具体方法可以查有关string 的算法。
      

  3.   

    这种情况用split函数恐怕不行~~,我看你可以自己写一个函数来作处理~~按照你要的结果,做个循环,判断字符是否为数字,如不是则加入TempString,直到字符时结束,把这个TempString放到数组中,数组下标自增
      

  4.   

    不好意思,打错字~~~~这种情况用split函数恐怕不行~~,我看你可以自己写一个函数来作处理~~按照你要的结果,做个循环,判断字符是否为数字,如是则加入TempString,直到遇到字符时结束,把这个TempString放到数组中,数组下标自增
      

  5.   

    dayanmao(大眼猫) ,可能不行吧,我要的结果里面也有不是数字的呀
      

  6.   

    能不能在得到数据的上一步,在每一格字符串后面加个逗号,再用 split 函数来做.
      

  7.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim Str As String
        Dim Arr() As String
        Dim i As Long
        
        Str = "Tu 15:35:00 U06 N01111A MPH    36 KPH    59 FLOW   6 OCC   666 HR  2239 SR      133    "
        Arr = Split(Str, " ")
        
        For i = LBound(Arr) To UBound(Arr)
            If Len(Arr(i)) <> 0 Then
                Me.Print Trim(Arr(i))
            End If
        Next
        
    End Sub
      

  8.   

    Private Sub Form_Load()
    Dim temparr() As String
    Dim tempstr As String
    tempstr = "Tu 15:35:00 U06 N01111A MPH    36 KPH    59 FLOW   6 OCC   666 HR  2239 SR      133    "temparr = GetArr(tempstr)
    MsgBox temparr(2)
    End Sub
    Private Function GetArr(str As String) As String()
    Dim temparr() As String
    Dim tempstr As String
    Dim i As Longtemparr = Split(str, " ")
    For i = 0 To UBound(temparr)
        If Trim(temparr(i)) <> "" Then
            tempstr = tempstr & temparr(i) & " "
        End If
    Next i
    tempstr = Mid(tempstr, 1, Len(tempstr) - 1)
    GetArr = Split(tempstr, " ")
    End Function
      

  9.   

    既然肯定有空格就好办dim a() as string
    s="Tu 15:35:00 U06 N01111A MPH    36 KPH    59 FLOW   6 OCC   666 HR  2239 SR      133    "
    s=trim(s)
    s1 = replace(s, "  ","") '注意:这是去掉中间有连续两个空格的情况
    Do While Len(s1) <> Len(s)
        s = s1
        s1 = replace(s, "  ","") 
    Loop
    a=split(s," ") 'a就是你要的结果数组
      

  10.   

    用这个函数试一下:
    Mid(str,i,j) 是用来截取从i开始到j的字窜的。不过要提前知道i和j的位置。
      

  11.   

    写错了,应该是replace(s, "  "," "),两个空格变一个,Sorry!
      

  12.   

    temparr = Split(str, " ")
    For i = 0 To UBound(temparr)
        If val(temparr(i)) > 0 Then
            print temparr(i)
        End If
    Next i
      

  13.   

    楼上的好像都不行哟,
     flyingscv(zlj) ,我要求得到的数组你面包括不是数字类型的字符串
      

  14.   

    一个比较笨的办法
        Dim a() As String   '原始字符串数组
        Dim b(16) As String '去掉空格后的字符串数组
        Dim c(8) As String '最终结果数组
        Dim i As Integer
        Dim m As Integer
        Dim x As String
        i = 0
        m = 0
        If strCheckData = "" Then   '如果发送的数据为空
        
        End If
        strCheckData = Trim(strCheckData)
        a = Split(strCheckData)
         For i = LBound(a) To UBound(a) '除掉所有的空格,把处理的的结果赋值给b
            If Len(a(i)) <> 0 Then
                b(m) = a(i)
                m = m + 1
            End If
        Next
        c(0) = b(1)
        c(1) = b(3)
        c(2) = b(5)
        c(3) = b(7)
        c(4) = b(9)
        c(5) = b(11)
        c(6) = b(13)
        c(7) = b(15)
        For i = LBound(c) To UBound(c)
            Me.Print c(i)
        Next
      

  15.   

    If val(temparr(i)) > 0 Then
            print temparr(i)
        End If
    这段就是判断是否以数字开头啊
      

  16.   

    to:flyingscv(zlj)
    你的代码把所有非数字的都过滤掉了,而我的结果里面包含非数字的内容
      

  17.   

    提供一种思想
    用Input #fileno,par1, par2, par3, ..... 将所有字符串赋给某一个变量
    再用循环判断每个par字符串中是否又字母,有则取其后一个字符串为所需