wshyzhywx 发表于 2010-3-10 14:26:30

VBS的函数如何设置多个返回值?

如题!!   我现在拿多个返回值是吧所有的返回值用个符号给分割开 然后拿出来再处理字符串的。。这么多MS有点弱智。。哪位知道如何更好地办法么。。。谢谢指教。。

zzxxbb112 发表于 2010-3-10 16:08:32

1.返回数组
2.使用dictionary对象来保存并返回(推荐)

wshyzhywx 发表于 2010-3-10 18:58:07

回复 2# 的帖子

能否举例说明 谢谢。。。。:hug:

feiyunkai 发表于 2010-3-11 15:02:32

一种简单的方法如下:

Function   b()   
b=split("a,b,c,d,e,f" ,",")
End   Function
'以上函数返回数组b,但是引用数组元素不能直接引用,而要以以下方式引用:b()(i) 其中i是数组的下标,如果要循环输出这个数组,那么代码如下
for i=0 to 5
msgbox b()(i)
next
'或
for i=0 to 5
print (b()(i))
next

[ 本帖最后由 feiyunkai 于 2010-3-11 15:07 编辑 ]

skyzhu 发表于 2010-3-11 15:13:37

上面的办法都可以
还有个怪办法:可以对传进来的值赋值,就能把值带出去了,递归时千万别用
a=1
b=2
test 8,a,b
Function test(q,w,e)
    w = 3
    e = 4
End Function

MsgBox a
MsgBox b

May_may 发表于 2010-3-11 16:48:30

我觉得用2楼说的dictionary蛮好用的

wshyzhywx 发表于 2010-3-12 16:43:48

我想知道怎么用dictionary来传。。。

May_may 发表于 2010-3-12 17:02:53

dictionary相当于动态数组
Set oDic=Createobject("scripting.Dictionary")
oDic.Add 1,"a"
oDic.Add 2,"b"
上面是写入oDic的
读出来就是
oDic(1)结果就是a

ermine 发表于 2010-3-12 17:33:39

返回字典对象

Function test()
Set dic=CreateObject("scripting.dictionary")
dic.Add "first",1
dic.Add "second",2
Set test=dic
Set dic=nothing
End Function

'调用函数
Set x=test()
MsgBox x.item("first")
MsgBox x.item("second")
Set x=nothing

JonnyGu 发表于 2010-3-15 15:55:06

感觉楼主的方法挺好的,用dictionary的话不就等于再把结果处理了一遍啊。。。
页: [1]
查看完整版本: VBS的函数如何设置多个返回值?