commandId=8883&itemId=108002&userNumber=1318&feeType=1&msgCode=8&msgId=021114100003000001&name=test&pwd=test
问题:怎样分析处理上面的字符串,并且将字符串中的参数的值提取出来赋值给程序中的相关变量?
    例如:我想得到feetype的值1,commandid的值8883......

解决方案 »

  1.   

    先用arrA=split(strA,"&")把每一个参数分在数组里
    然后,在arrA()里找出变量名:varName=left(arrA(index),instr(arrA(index),"=")-1)
    找值的方法也类推:varValue=mid(arrA(index),instr(arrA(index,"="))
      

  2.   

    Sub test()
    Dim iStr$
    iStr = "commandId=8883&itemId=108002&userNumber=1318&feeType=1&msgCode=8&msgId=021114100003000001&name=test&pwd=test"'下面是分拆字符串的处理
    dim iI&, iJ&, iStr1$, iStr2$ 
    iStr = iStr & "&"  '为处理方便,在字符串结束加一个&
    iI = InStr(1, iStr, "&")
    While iI > 0
        iStr1 = Left(iStr, iI - 1)
        iJ = InStr(1, iStr1, "=")
        If iJ > 0 Then
            iStr2 = Mid(iStr1, iJ + 1)
            iStr1 = Left(iStr1, iJ - 1)
        End If
        Debug.Print iStr1 & vbTab & iStr2
        iStr = Mid(iStr, iI + 1)
        iI = InStr(1, iStr, "&")
    WendEnd Sub
      

  3.   

    有明显的分割符号,应该比较容易啊,
    除了一楼的方法外,你也可以自己处理啊。
    I=1
    A=""
    WHILE I<=LEN(STR)
      IF MID(STR,I,1)<>"&" AND MID(STR,I,1)<>"=" THEN
          A=A & MID(STR,I,1)
      ELSE
         ......
      
      

  4.   

    下面是分拆的函数,返回值是一个二维数组Function fSplitStr(ByVal iStr$) As Variant
    'Dim iStr$
    'iStr = "commandId=8883&itemId=108002&userNumber=1318&feeType=1&msgCode=8&msgId=021114100003000001&name=test&pwd=test"'下面是分拆字符串的处理
    Dim iI&, iJ&, iStr1$, iStr2$
    Dim iStrS$()  '定义一个动态的二维数组来保存数据iStr = iStr & "&"  '为处理方便,在字符串结束加一个&
    iI = InStr(1, iStr, "&")
    While iI > 0
        iStr1 = Left(iStr, iI - 1)
        iStr = Mid(iStr, iI + 1)
        
        iI = InStr(1, iStr1, "=")
        If iI > 0 Then
            iStr2 = Mid(iStr1, iI + 1)
            iStr1 = Left(iStr1, iI - 1)
        End If
        ReDim Preserve iStrS(1, iJ)
        iStrS(0, iJ) = iStr1
        iStrS(1, iJ) = iStr2
        
        iJ = iJ + 1
        iI = InStr(1, iStr, "&")
    WendfSplitStr = iStrS
    End Function
      

  5.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim s As String
        Dim strarr As Variant
        s = "commandId=8883&itemId=108002&userNumber=1318&feeType=1&msgCode=8&msgId=021114100003000001&name=test&pwd=test"
        strarr = Split(s, "&")
        Dim num As Long
        num = UBound(strarr)
        Dim myname() As String '保存变量名称
        Dim myvalue() As String '保存变量的值
        ReDim myname(num)
        ReDim myvalue(num)
        Dim arrtemp As Variant
        Dim i As Long
        For i = 0 To num
            arrtemp = Split(strarr(i), "=")
            myname(i) = arrtemp(0)
            myvalue(i) = arrtemp(1)
            Debug.Print "变量" + myname(i) + "的值为:" + myvalue(i)
       Next
    End Sub