string 类型的数据
13 08 97 51 21 1B 8E  
  这个是一组十六进制数现在要实现如下数据分配
sbuf(0)=&H13
sbuf(1)=&H8
sbuf(2)=&H97
sbuf(3)=&H51
sbuf(4)=&H21
sbuf(5)=&H1B
sbuf(6)=&H8E
应该怎么做?这个只是说明我需要数据的规则,我有很多的数据都要这样来实现数据的分配请你们给出思路或者代码 在线等

解决方案 »

  1.   

    不太明白,是直接把"&H13"这样的数直接放到数组还是怎么滴?
    直接定义一个数组存放不就可以了?
      

  2.   

        Dim strBuf As String
        Dim strArry() As String
        Dim iCnt As Integer
        strBuf = "13 08 97 51 21 1B 8E"
        strArry = Split(strBuf, " ")
        For iCnt = 0 To UBound(strArry)
            strArry(iCnt) = "&H" & strArry(iCnt)
            Debug.Print strArry(iCnt)
        Next iCnt '*************
    &H13
    &H08
    &H97
    &H51
    &H21
    &H1B
    &H8E
    '*************不知道数不是LZ希望的~~    
      

  3.   

    对于3楼的确实是一个好方法我那样写是为了大家看的明白 那要是中间没有空格哪?
    怎么两位的分
    13089751211B8E 还是这样的一组数据
    需要的结果还是那样的结果
    &H13 
    &H08 
    &H97 
    &H51 
    &H21 
    &H1B 
    &H8E 
     这个应该怎么办?怎么写代码
      

  4.   

    dim s as string
    dim n as long
    dim i as long
    dim b() as byte
    dim t as strings = "13089751211B8E"
    n = len(s)
    if n mod 2 = 0 then
      redim b(n / 2 - 1)
    else
      redim b(n / 2)
    end if
    for i = 0 to ubound(b)
      t = mid(s,2*i+1,2)
      b(i) = CByte(Val("&H" & t))
    next
      

  5.   

    Private Sub Command1_Click()
        Dim strF As String
        Dim strArr() As String
        Dim lngI As Long
        strF = "13089751211B8E"
        
        ReDim strArr(Len(strF) / 2 - 1)
        For lngI = 0 To Len(strF) - 1 Step 2
            strArr(lngI / 2) = "&H" & Mid(strF, lngI + 1, 2)
            Debug.Print strArr(lngI / 2)
        Next
    End Sub
      

  6.   

    Sorry,忘了一点:如果字符串是奇数个的时候,若想在前面补零,if n mod 2 = 0 then 
      redim b(n / 2 - 1) 
    else 
      redim b(n / 2) 
      s = "0" & s
    end if 若在后面补零,if n mod 2 = 0 then 
      redim b(n / 2 - 1) 
    else 
      redim b(n / 2) 
      s = s & "0" 
    end if 
      

  7.   

    Option ExplicitPrivate Sub Form_Load()
        Dim strIni As String
        Dim sBuf() As String
        Dim I As Integer
        strIni = "13 08 97 51 21 1B 8E"
        sBuf = Split(strIni, " ")
        For I = LBound(sBuf) To UBound(sBuf)
            Debug.Print "sBuf(" & CStr(I) & ")= " & sBuf(I)
        Next I
    End Sub
      

  8.   


    Private Sub Form_Load()
        Dim iStr As String, sbuf() As Byte
        Dim i As Integer, strlen As Integer
        iStr = "13089751211B8E"
        strlen = Len(iStr) \ 2
        ReDim sbuf(strlen)
        For i = 1 To strlen
            sbuf(i - 1) = "&H" & Mid(iStr, i * 2 - 1, 2)
            Debug.Print sbuf(i - 1), Format(Hex(sbuf(i - 1)), "00")
        Next i
    End Sub
      

  9.   


    Private Sub Form_Load()
        Dim iStr As String, sbuf() As Byte
        Dim i As Integer, strlen As Integer
        iStr = "13089751211B8E"
        strlen = Len(iStr) \ 2
        ReDim sbuf(strlen - 1)'''''''''''''
        For i = 1 To strlen
            sbuf(i - 1) = "&H" & Mid(iStr, i * 2 - 1, 2)
            Debug.Print sbuf(i - 1), Format(Hex(sbuf(i - 1)), "00")
        Next i
    End Sub