commandId=8883&itemId=108002&userNumber=1318&feeType=1&msgCode=8&msgId=021114100003000001&name=test&pwd=test
问题:怎样分析处理上面的字符串,并且将字符串中的参数的值提取出来赋值给程序中的相关变量?
例如:我想得到feetype的值1,commandid的值8883......
问题:怎样分析处理上面的字符串,并且将字符串中的参数的值提取出来赋值给程序中的相关变量?
例如:我想得到feetype的值1,commandid的值8883......
然后,在arrA()里找出变量名:varName=left(arrA(index),instr(arrA(index),"=")-1)
找值的方法也类推:varValue=mid(arrA(index),instr(arrA(index,"="))
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
除了一楼的方法外,你也可以自己处理啊。
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
......
'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
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