ACK:QRY CALL ACNTINFO:RETN=0,DESC=操作成功,ATTR=USERNAME&CERTIFICATE&CALLINGNUMBER&USERLEVEL&APPLYMEALTYPE&CURRENTMEALTYPE&FREECITYLEFT&FREECOUNTRYLEFT&FREEHMTLEFT&FREEINTERLEFT&MEALAPPLYMONTHS&ACCOUNTLEFT&BOUNTYLEFT&ACCOUNTPREMONTH&ACCOUNTNOWMONTH&ACCOUNTTOTAL&CALLRIGHTTYPE&NEWSERVICE&LANGUAGETYPE&CARDLEVEL&DAYACCOUNT&MONTHACCOUNT&DAYACCOUNTLEFT&MONTHACCOUNTLEFT&SERVICESTATE&USESTATE&DISTRICTID&SCP&RENTDEDUCTMTH&DAYFEEDEDUCTDATE&NEWSERDEDUCTMTH&MEALFEEDEDUCTTIM&KEEPSTARTDATE&KEEPDAYS&IFUSECALLPIN&CALLPINNUMBER&IFHAVEFAMINO&FAMNOMODISUM®ISTERDATETIME&SERVICESTART&SERVICESTOP&FEESHOW&SHOWTERMINAL,RESULT=徐东元|652325197910121011|09917897741|1|0|0|0|0|0|0|0|-65|0|0|0|0|0011|0|1|0|0|0|0|0|6|0|1|101|00000000|00000000|00000000|00000000000000|00000000|0|0|636697|0|0|20041223101152|20041223|20041223|0| 853B6EDA
以上是一个字符串 其中的ATTR=后面跟的是一些变量的名字,用&隔开 result=后面跟的是变量值 分别对应前面的每个变量 求一个函数 功能是能够根据输入变量名,获得该变量的值 谢谢
以上是一个字符串 其中的ATTR=后面跟的是一些变量的名字,用&隔开 result=后面跟的是变量值 分别对应前面的每个变量 求一个函数 功能是能够根据输入变量名,获得该变量的值 谢谢
解决方案 »
- 在VB程序中调用系统计算器,怎么得到那个计算后的结果?
- TreeView中选择父节点时,其子节点也被选取,且点击按钮时还能获取到所有被选取节点信息
- 请问DataGrid 控件下 Button 的属性怎么用
- datareport可以在哪里找到啊?
- 国庆节也不能开心,烦恼!!
- 关于picture box的问题
- ★★★★★★急需,请朋友们帮忙★★★★★★
- 我终于到 分类专家榜第一了.了了心愿,可以开开心心去玩了,15号见.呵呵.
- 请教哪里有MSDN下载,我买了好多张VSTD的盘里都没有!各位大虾帮帮忙!
- 如何删除文件到回收站?
- 为什么mscomm的input属性会这样??救命啊
- 利用vb在excel选中单元格的光标处插入字符串
Dim i As Long
Dim str As String
Dim temparr1() As String, temparr2() As String
Dim attrINT As Long, resultINT As Long
Dim attrSTR As String, resultSTR As Stringstr = "ACK:QRY CALL ACNTINFO:RETN=0,DESC=操作成功,ATTR=USERNAME&CERTIFICATE&CALLINGNUMBER&USERLEVEL&APPLYMEALTYPE&CURRENTMEALTYPE&FREECITYLEFT&FREECOUNTRYLEFT&FREEHMTLEFT&FREEINTERLEFT&MEALAPPLYMONTHS&ACCOUNTLEFT&BOUNTYLEFT&ACCOUNTPREMONTH&ACCOUNTNOWMONTH&ACCOUNTTOTAL&CALLRIGHTTYPE&NEWSERVICE&LANGUAGETYPE&CARDLEVEL&DAYACCOUNT&MONTHACCOUNT&DAYACCOUNTLEFT&MONTHACCOUNTLEFT&SERVICESTATE&USESTATE&DISTRICTID&SCP&RENTDEDUCTMTH&DAYFEEDEDUCTDATE&NEWSERDEDUCTMTH&MEALFEEDEDUCTTIM&KEEPSTARTDATE&KEEPDAYS&IFUSECALLPIN&CALLPINNUMBER&IFHAVEFAMINO&FAMNOMODISUM®ISTERDATETIME&SERVICESTART&SERVICESTOP&FEESHOW&SHOWTERMINAL,RESULT=徐东元|652325197910121011|09917897741|1|0|0|0|0|0|0|0|-65|0|0|0|0|0011|0|1|0|0|0|0|0|6|0|1|101|00000000|00000000|00000000|00000000000000|00000000|0|0|636697|0|0|20041223101152|20041223|20041223|0| 853B6EDA"
attrINT = InStr(LCase(str), "attr=")
resultINT = InStr(LCase(str), "result=")
attrSTR = Mid(str, attrINT + 5, resultINT - attrINT - 6)
resultSTR = Mid(str, resultINT + 7)temparr1 = Split(attrSTR, "&")
temparr2 = Split(resultSTR, "|")For i = 0 To UBound(temparr1)
Debug.Print temparr1(i) & "=" & temparr2(i)'打印出来
Next i
End Sub
还没测试,不知道对不对,汗!'str1 存放此字符串'分别存放变量名和变量值的全局数组
dim varname() as string
dim varvalue() as string
……
对字符串进行处理,放在两个数组里
dim intTmp1 as integer,intTmp2 as integer
intTmp1 = instr(str1,"ATTR=")'"ATTR="第一字母在字符串的位置
intTmp2 = instr(str1,"RESULT=")'"RESULT="第一字母在字符串的位置
varname = split(mid(str1,intTmp1+5,intTmp2-intTmp1-7), "&")
varvalue = split(right(str1,len(str1)-intTmp2-6), "|")function getValue(byval vname as string) as string
dim i as integer
for i = 0 to UBound(varname)
if vname = varname(i) then
getValue = varvalue(i)
exit function
end if
next
end function
菜鸟抢分又佳口阿
dim varname() as string
dim varvalue() as string
要写在最顶端,所有子程序和函数的外面的
varname = split(mid(str1,intTmp1+5,intTmp2-intTmp1-7), "&")
应该是-6更正为:'str1 存放此字符串,和varname()、varvalue()一样,是全局变量'分别存放变量名和变量值的全局数组
'要写在最顶端,所有子程序和函数的外面的
dim varname() as string
dim varvalue() as string'对字符串进行处理,放在两个数组里
'对于str1只需调用一次此Sub,产生两个数组待用
sub dealStr()
dim intTmp1 as integer,intTmp2 as integer
intTmp1 = instr(str1,"ATTR=")'"ATTR="第一字母在字符串的位置
intTmp2 = instr(str1,"RESULT=")'"RESULT="第一字母在字符串的位置
varname = split(mid(str1,intTmp1+5,intTmp2-intTmp1-7), "&")
varvalue = split(right(str1,len(str1)-intTmp2-6), "|")
end subfunction getValue(byval vname as string) as string
dim i as integer
for i = 0 to UBound(varname)
if vname = varname(i) then
getValue = varvalue(i)
exit function
end if
next
end function
sub dealStr()
dim intTmp1 as integer,intTmp2 as integer
intTmp1 = instr(str1,"ATTR=")'"ATTR="第一字母在字符串的位置
intTmp2 = instr(str1,"RESULT=")'"RESULT="第一字母在字符串的位置
varname = split(mid(str1,intTmp1+5,intTmp2-intTmp1-7), "&")
varvalue = split(right(str1,len(str1)-intTmp2-6), "|")
end subfunction getValue(byval vname as string) as string
dim i as integer
for i = 0 to UBound(varname)
if vname = varname(i) then
getValue = varvalue(i)
exit function
end if
next
end function
dim aa,bb
aa=split(ATTR,"&")
bb=split(RESULT,"|")
for i=0 to ubound(aa)
if cstr(aa(i))=Str then
aas=bb(i)
exit for
end if
next i
end function
不知道你为什么那么复杂
直接分解就可以得到两个数组,且两个数组的对应的元素就是你想要的值
aa里存放着变量名,bb里存放着值
楼主给出的整个是一个字符串,ATTR和RESULT都是其中的字符,而不是变量~