脚本开发参数化之将内容保存为参数、参数数组及参数值获取 by:授客QQ:1033553122 在VuGen中默认使用{}的字符串称为参数 注意:参数必须在双引号中才能用 将字符串保存为参数 lrsavestring(,); 举例:用参数来替换需要打开的url链接 Action2() { lrsavestring(http:172。25。75。2:1080WebT,); 打开登录页面 weburl(WebT, URL{website},运行出错改成URL{website}即可 Resource0, RecContentT, R, Snapshott1。, ModeHTML, LAST); return0; } 运行报错: Action2。c(6):Error27226:TURLhttp:172。25。75。2:1080WebTargument(number2)〔MsgId:MERR27226〕 Action2。c(6):weburl(WebT)ERROR,0bodybytes,0〔MsgId:MMSG26388〕 解决方法: URL{website},URL和等号””之间多出了一个空格,去掉该空格即可。 所以使用lrevalstring()函数的时候也是使用双引号来调用的。 还可以如下方式 Action2() { lrsavestring(http:172。25。75。2:1080,); lrsavestring(WebT,); 打开登录页面 weburl(WebT, URL{website}{webname}, Resource0, RecContentT, R, Snapshott1。, ModeHTML, LAST); return0; } 获取参数值的字符串表识 可用lrevalstring函数获取参数值的字符串标表示,然后用lroutputmessage()函数输出结果 Action2() { lrsavestring(http:172。25。75。2:1080,); lrsavestring(WebT,); lroutputmessage(lrevalstring(获取参数值的字符串表示:{website}{webname})); 打开登录页面 weburl(WebT, URL{website}{webname}, Resource0, RecContentT, R, Snapshott1。, ModeHTML, LAST); return0; } 注:如果想获取参数字符串的第一个字母,同c,可以这样:lrevalstring(“{param}”)〔0〕; 将int型数字保存为参数 lrsaveint(intnumber,“paramname”) 例如: Action2() { lrsaveint(0,); 打开登录页面 weburl(WebT, URLhttp:172。25。75。2:1080WebT, Resource0, Resource{intparma}, RecContentT, R, Snapshott1。, ModeHTML, LAST); return0; } 把时间保存为参数 通过lrsavedatetime函数来实现。 函数原型: voidlrsavedatetime(constcharformat,intoffset,constcharname); format:期望输出的日期格式,如:Y、m、d、X等 offset:类似与表示时间的一些关键字常量: DATENOW现在的日期 TIMENOW现在的时间 ONEDAY一天的时间 ONEHOUR一小时的时间 ONEMIN一分钟的时间 需要注意的是,他们可以单独使用,也可以联合使用 DATENOWTIMENOW当前时间 DATENOWONEDAY昨天 DATENOWONEDAY明天 两天前的日期 DATENOW2(ONEDAY)、DATENOW224(ONEHOUR)、DATENOW22460(ONEMIN) 2个小时后的时间 TIMENOW2(ONEHOUR) TIMENOW260(ONEMIN) name:期望将时间保存到的那个参数的名称 format格式参照表: Code Description a dayofweek,sabbreviatedweekdaynames A dayofweek,sfullweekdaynames b month,sabbreviatedmonthnames B month,sfullmonthnames c dateandtimeasxX d dayofmonth(0131) H hour(0023) I hour(0012) j numberofdayinyear(001366) m monthnumber(0112) M minute(0059) p sequivalentofAMorPM,whicheverisappropriate S seconds(0059) U weeknumberofyear(0152),Sundayisthefirstdayoftheweek。Weeknumber01isthefirstweekwithfourormoreJanuarydaysinit。 w Sundayisday0 W weeknumberofyear(0152),Mondayisthefirstdayoftheweek。Weeknumber01isthefirstweekwithfourormoreJanuarydaysinit。 x date,sdateformat X time,stimeformat y yearwithincentury(0099) Y year,includingcentury(forexample,1988) Z timezoneabbreviation characterinyouroutputstring 举例: Action() { lrsavedatetime(X,TIMENOW,); lrsavedatetime(Y,DATENOW,); lrsavedatetime(YmdX,DATENOWTIMENOW,); lrsavedatetime(Y,DATENOWONEDAY,); lroutputmessage(lrevalstring(系统的当前时间为:{time})); lroutputmessage(lrevalstring(系统的当前日期为:{date})); lroutputmessage(lrevalstring(系统的当前日期,当前时间:{datetime})); lroutputmessage(lrevalstring(昨天的日期为:{yesterday})); return0; } 运行结果: Startingiteration1。 StartingactionAction。 Action。c(7):系统的当前时间为:12:27:54 Action。c(8):系统的当前日期为:20141022 Action。c(9):系统的当前日期,当前时间:2014102212:27:54 Action。c(10):昨天的日期为:20141021 EndingactionAction。 Endingiteration1。 把内容保存为带格式的参数 lrparamsprintf(paramname,format,var1,var2,); 示例: Action2() { intindex56; ; lrparamsprintf(NewP,logd。,index,suffix); lroutputmessage(T,lrevalstring({NewParam})); return0; } 运行结果: StartingactionAction2。 Action2。c(24):Thenewfilenameislog56。txt EndingactionAction2。 把内容保存到参数数组 这个概念lr9。x后才有 参数数组必须满足以下两个条件: 1。参数必须都是以相同的名字开头,后面接下划线加数字的方式顺序赋值。 2。参数数组必须有一个“参数名count”的参数来记录数组的长度 相关函数: lrparamarridx()获取参数数组中指定编号的参数的值 lrparamarrlen()获取参数数组的长度 lrparamarrrandom()从参数列表中随机获取一个参数 例子:要创建一个访问网站的参数数组,可以编写以下代码 说明:通过脚本创建了一个名为website的参数数组,并获取编号为2的参数的值, 运行结果: 此处:websitelrparamarridx(,2),等同:lrevalstring(“{website2}”); 获取参数数组长度 例子: Action2() { intarraysize0; chararrsizestrNULL; lrsavestring(www。google。,website1); lrsavestring(www。google。,website2); lrsavestring(www。google。,website3); lrsavestring(www。google。,website4); lrsavestring(4,); arraysizelrparamarrlen(); 输出整数 1。把结果arraysize保存为参数 lrsaveint(arraysize,); 2。获取参数的字符串表示 arrsizestrlrevalstring({arrsize}); 输出结果 lroutputmessage(arrsizestr); return0; } 运行结果: 从参数列表中随机获取一个参数 例子: Action2() { charwebsiteNULL; lrsavestring(www。google。,website1); lrsavestring(www。google。,website2); lrsavestring(www。google。,website3); lrsavestring(www。google。,website4); lrsavestring(4,); websitelrparamarridx(,2); return0; } 运行结果: 例子:按顺序输出每个参数 Action2() { inti0; lrsavestring(www。google。,website1); lrsavestring(www。google。,website2); lrsavestring(www。google。,website3); lrsavestring(www。google。,website4); lrsavestring(4,); for(i0;i { lroutputmessage(lrparamarridx(,i)); } return0; } 输出结果 用指针变量存放参数 Action2() { charptNULL; lrsavestring(,); {param}; lroutputmessage(pt); lroutputmessage(lrevalstring(pt)); return0; } 运行结果: