51Testing软件测试论坛

标题: WR高手!!!现身现身啊!——脚本中定义数组! [打印本页]

作者: dujuanjacky    时间: 2007-6-27 17:42
标题: WR高手!!!现身现身啊!——脚本中定义数组!
extern char a[2]={1,2,3};
在WR脚本里定义数组,检查后提示语法错误;
这样为什么不对?该如何定义呢?
作者: evensky    时间: 2007-6-27 20:08
顶 下下
作者: dionysus    时间: 2007-6-27 21:52
lz可以这样定义 public a[]={1,2,3};
public说明变量在本脚本中,且数组不用写有多少元素
作者: dujuanjacky    时间: 2007-6-29 08:48
定义是没错啦,现在脚本中读不出数组里的数据啊!
脚本如下:
我将精度值赋在数组中,用for循环选择精度值,并截取图片;
public a[]={0,0.0,0.00,0.000,0.0000,0.00000,0.000000,0.0000000,0.00000000};
for(i=0;i<9;i++)
{
        set_window ("noname (page)", 5);
        list_select_item ("精度(P):",a[i);
        obj_check_bitmap("精度(P):", "Imgi", 3);
}
现在出现的问题是:选择的数据都是0,并且正常地选了9次。
郁闷鸟啊,为什么数组的值读不出来呢?
作者: lsy325    时间: 2007-6-29 09:45
数组中存放的数据不是读不出来,而是都读取成了0。
给数组赋值时使用字符型,如:public a[]={"0","0.0","0.00"};
作者: dujuanjacky    时间: 2007-6-29 10:45
原帖由 lsy325 于 2007-6-29 09:45 发表
数组中存放的数据不是读不出来,而是都读取成了0。
给数组赋值时使用字符型,如:public a[]={"0","0.0","0.00"};


采用了你的建议,可还是0啊!

还有解决办法么?
作者: dujuanjacky    时间: 2007-6-29 11:02
那这里是不是要定义字符串数组呢?
望高人指点啊……
作者: lsy325    时间: 2007-6-29 12:13
你修改完代码后,关闭WinRunner,再打开试一试。
不知是对数组的运用不太清楚,还是WinRunner存在的问题。
public a[]={"0","0.0","0.00"};
a[1]="aa";
report_msg(a[1]);
像这段代码,输出的是“aa”。
把a[1]="aa";删除后,再次执行,输出的仍是“aa”,只有把WinRunner关闭后再打开,执行删除过a[1]="aa";的脚本,输出的才会是“0.0”
作者: dujuanjacky    时间: 2007-6-29 14:07
原帖由 lsy325 于 2007-6-29 12:13 发表
你修改完代码后,关闭WinRunner,再打开试一试。
不知是对数组的运用不太清楚,还是WinRunner存在的问题。
public a[]={"0","0.0","0.00"};
a[1]="aa";
report_msg(a[1]);
像这段代码,输出的是“aa”。
...


爱死你了,呵呵……
发现你不但是个高人,而且还是个热心的高人……赞!

感谢感谢啊!
作者: lok_198461    时间: 2007-6-29 17:25
路过
学习学习
作者: noahlish    时间: 2007-7-1 17:46
支持热心人
作者: dionysus    时间: 2007-7-1 22:50
十分感谢lsy325的回答!
记得以前使用Robot的时候也遇到过修改语句但不起作用的现象,当时是点击“编译”,让Robot重新编译一下所有语句。WR中没有很强大的语句调试和编译功能,但是可以点击Tool->Syntax Check 进行简单的语法检查,我试过,每次修改语句后运行一下这里,可以将修改的结果变过来
ps:看过一些老外写的WR语句,他们使用static定义数组较多
作者: 在水_一方    时间: 2008-2-27 17:59
标题: 回复 1# 的帖子
TSL的数组是不能指定大小的
作者: fengxueren    时间: 2008-2-27 18:20
原帖由 lsy325 于 2007-6-29 12:13 发表
你修改完代码后,关闭WinRunner,再打开试一试。
不知是对数组的运用不太清楚,还是WinRunner存在的问题。
public a[]={"0","0.0","0.00"};
a[1]="aa";
report_msg(a[1]);
像这段代码,输出的是“aa”。
把a[1 ...


你把上面这段代码改成
public a[];
a[]={"0","0.0","0.00"};
a[1]="aa";
report_msg(a[1]);

在wr中,除了auto类型的变量,其他类型的变量在声明时候的赋值都只在第一次有效
作者: mythxhg    时间: 2008-3-5 13:27
标题: 回复 14# 的帖子
这位才是高高手
作者: 双面人    时间: 2008-3-11 09:23
果然有高手




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2