QTP自编函数不支持可选参数么[已解决]
QTP不支持可选参数么?如下面的函数在QTP里面是不能使用的
Function exist_user(username,password,options userui)
end function
结果请看后面回复,想了好久...
[ 本帖最后由 onlonely 于 2009-6-4 10:06 编辑 ] 我也想知道,不过我的实践结果告诉我好象是不行.
有高手知道的话不要吝啬啊,到底VBS能不能象VC那样,参数可以使用默认值呢?
如VC void func(CString bVar = FALSE ) ,vbs怎么表述啊
可选参数?
如果VBS自身的Feature不支持你试试VBS能不能模拟C++中 printf的定义。
C++中printf是这样定义的:
void va_start(va_list ap, last);
type va_arg(va_list ap, type);
void va_end(va_list ap);
va_list args; //声明变量
va_start(args, fmt); //开始解析。args指向fmt后面的参数
TYPE var = va_arg(args, TYPE); //取下一个参数并返回。args指向下一个参数
va_end(args); //结束解析
见 http://blog.chinaunix.net/u2/68938/showart_726427.html
VB看参考一下 http://blog.csdn.net/smallboy_5/archive/2008/10/21/3118349.aspx
[ 本帖最后由 shanxi 于 2009-5-22 16:48 编辑 ]
回复 3# 的帖子
VB看参考一下 http://blog.csdn.net/smallboy_5/archive/2008/10/21/3118349.aspx]这个方法不行.......... Function exist_user(username,password,options userui)
end function
这么写有意义吗?
目的是啥呢 VBS是不支持直接使用可选参数的。不过你可以写个Class来实现可选参数的功能。
回复 5# 的帖子
Function exist_user(username,password,options userui)...更多内容可以写这里面.....
end function
这个是一个函数的缩写啊.
我问题的关键在参数如何做到可选.
如上面这个函数,我可以使用0个参数,1个参数,2个参数,3个参数来调用这个函数.
我的目的就是如此. 原帖由 hsjzfling 于 2009-5-22 19:06 发表 http://bbs.51testing.com/images/common/back.gif
VBS是不支持直接使用可选参数的。不过你可以写个Class来实现可选参数的功能。
哦,改天要试试。 用vbs类吧
回复 9# 的帖子
经过一段时间的思考,总结一种方法!先看下面函数Function Output_SplitString(Split_String,Select_Num)
Split_String="0,"&Split_String
Tmp_Array=Split(Split_String,",")
Tmp_Array(0)=Ubound(Tmp_Array)+1
Output_SplitString=Tmp_Array(Select_Num)
End Function
如果我们要使用可选参数,就
function a(string) '输入的参数用字符串,逗号隔开,如"参数1,参数2,参数3"
num=Output_SplitString(string,0)
if num=2 then
'如果参数为2个的时候使用的语句放这里
end if
if num=3 then
'如果参数为3个的时候使用的语句放这里
end if
end function
LZ能做个示例么
比如要给函数a传两个参数"ABC","DEF":lol
回复 11# 的帖子
首先这个函数是这个方法的主要功能函数,作用是把输入的字符串分割成一个数组,并根据其中Select_Num返回选择的参数,Function Output_SplitString(Split_String,Select_Num)
Split_String="0,"&Split_String
Tmp_Array=Split(Split_String,",")
Tmp_Array(0)=Ubound(Tmp_Array)+1
Output_SplitString=Tmp_Array(Select_Num)
End Function
然后使用时参数用字符串传递,如这样:
a("参数1,参数2,参数3")
注意传递的是一个参数,但是这个参数是一个字符串,参数之间用逗号隔开,并且是英文逗号.
然后,这个函数里面要使用我上面的那个函数.
如:
function a(string)
parameter1=Output_SplitString(string,1)'string里面存放输入参数的字符串,后面的数字表示第几个参数
end function
Do you understand? 按照您说的方法,但是我得到怎么都是第一个的值呢。
页:
[1]