51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5242|回复: 10
打印 上一主题 下一主题

[原创] 急!!web_reg_save_param方法中的ORD参数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-3-21 11:57:35 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
请问下,我现在虽然知道web_reg_save_param函数的用法,但我一直都不明白ORD参数正确的意思,在网上找都是说:如果把它设置成ALL的话就可以保存多个参数,那我想问一下,这个保存参数的意思是不是脚本迭代一次就把所找到的值一直存放到参数里面去?还是怎么样的?还有,怎样从这个参数找到相关的值?请各位好心人帮下忙,我真的有点笨。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

11#
发表于 2009-1-4 16:05:45 | 只看该作者
原帖由 aprincess 于 2009-1-4 15:48 发表
如果设置ORD=ALL表示把所有值都保存到参数中,是不是有点类似数组的意思啊?
还有这个参数保存了好多值,那么以后调用此参数的地方如何取值呢?是随机取一个,还是取全部?

没错,类似数组。
假设关联了一个姓名的字符串,保存在参数NAME里面:

ORD=1的时候,可以直接输出
lr_output_message(lr_eval_string("{NAME}"));

ORD=ALL的时候,就要这样输出了
lr_output_message(lr_eval_string("{NAME_1}"));
lr_output_message(lr_eval_string("{NAME_2}"));
lr_output_message(lr_eval_string("{NAME_3}"));



下面是我的一段脚本,一起探讨探讨这种情况的用法。
        int i,j;
        char temp[20];
        char keyword[50][64];

        web_reg_save_param("MNAME","LB=)>","RB=</a></td>","ORD=ALL",LAST);

        web_url("影视TOP关键词",
                "URL={LISTURL}",
                "Mode=HTTP",
                LAST);

        i=atoi(lr_eval_string("{MNAME_count}"));
        lr_error_message("%d",i);
        if(i>50) i=50;

        for(j=0;j<i;j++)
        {
                sprintf(temp,"{MNAME_%d}",(j+1));
                sprintf(keyword[j],"%s\n",lr_eval_string(temp));

        }
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-1-4 15:48:55 | 只看该作者
如果设置ORD=ALL表示把所有值都保存到参数中,是不是有点类似数组的意思啊?
还有这个参数保存了好多值,那么以后调用此参数的地方如何取值呢?是随机取一个,还是取全部?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-12-11 10:31:39 | 只看该作者
说得很清楚,理解了,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-3-23 21:44:46 | 只看该作者
当附和关联函数左右边界的值有多个时,设置ORD=ALL表示把所有值都保存到参数中,ORD=1表示保存第一个
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    7#
    发表于 2008-3-23 19:10:56 | 只看该作者
    这个好像很好理解吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-3-22 09:39:58 | 只看该作者
    原帖由 liangjz 于 2008-3-21 22:23 发表
    bossy 应该把右边界带上。

    ord=1 表示把符合左右边界条件的第一个截取出来
    。。。

    嗯,是的是的,我知道了,3Q.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2008-3-21 22:23:44 | 只看该作者
    bossy 应该把右边界带上。

    ord=1 表示把符合左右边界条件的第一个截取出来
    。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2008-3-21 18:08:45 | 只看该作者
    上面两位说得不太清楚,还是让我这个新手说吧,现在假如web_reg_save_param这个函数的左边字符数是这样写"LB/IC=barguid'",哪如果把ORD设置成1的话,那就是说,当前源文件中第一次出现barguid时就截取第一次出现barguid右边的值,如果把ORD设置成2的话,那就把源文件中第二次出现的barguid时右边所出现的值截出来,如些类推,如果把ORD设置成All的话就把源文件所有出现barguid右边的值都截出来,就是这个意思.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-26 13:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2008-3-21 14:02:41 | 只看该作者

    ORD

    假如符合条件的有多个值,ORD就是指明你要取第几个值。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2008-3-21 13:12:38 | 只看该作者
    ORD 控制保存的参数类型,如果是保存单个值的话就是1,如果想保存一个列表的话,需要是ALL。
    ORD: Indicates the ordinal position or instance of the match. The default instance is 1. If you specify "All," it saves the parameter values in an array. This attribute is optional.
    Note: The use of Instance instead of ORD is supported for backward compatibility, but deprecated.
    http://bbs.51testing.com/thread-101620-1-3.html
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 18:26 , Processed in 0.069132 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表