51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1279|回复: 2
打印 上一主题 下一主题

[原创] 关于自定义函数的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-5-21 17:06:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Function SelectRegExp(Obj,Patrn)
   Dim NumOfItems,i,CurrentValue,regEx,ItemToSelect,oldFilter
   '初始化正则表达式
   Set regEx=new RegExp
   regEx.pattern=patrn
   regEx.Ignorecase=false  '区分大小写
   oldfilter=Reporter.Filter       '保存默认值
   Reporter.Filter=2 '仅发送错误
   ItemToSelect=-1
   '获取测试对象的 NumOfItems属性
   NumOfItems=Obj.getroproperty("items count")
    For i=0 to NumOfItems-1
    CurrentValue=Obj.GetItem(i)
            If regEx.test(CurrentValue)Then
             If (ItemToselect<>-1) Then
   SelectRegExp=-1    '表示匹配项不唯一
   Reporter.Filter=oldFilter
   Exit function
     End If
     ItemToSelect=i
    End If

   Next
   Reporter.Filter=oldFilter    '重置默认设置
   '做出选择动作
   If (ItemToSelect>=0) Then
  SelectRegExp=Obj.Select(ItemToSelect)
  else
  SelectRegExp=-1
   End If
End Function
我不太明白下面这一段
If regEx.test(CurrentValue)Then
If (ItemToselect<>-1) Then
SelectRegExp=-1    '表示匹配项不唯一
为什么当regEX.test为真,当ItemToSelect <> -1时,就要SelectRegExp=-1。
请帮忙解释一下。还有就是ItemToselect<>-1时,是说明要选择的记录在list中出现了吗
谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-5-22 08:57:54 | 只看该作者
这个函数的返回值分为选择成功,和失败,其中失败的返回值为-1;失败又分两种情况,SelectRegExp=-1    '表示匹配项不唯一,这里表示select里面存在重复项;后面的SelectRegExp=-1表示没有符合正则的选项。
  1. If regEx.test(CurrentValue)Then
  2.              If (ItemToselect<>-1) Then
  3.                  SelectRegExp=-1    '表示匹配项不唯一
  4.            Reporter.Filter=oldFilter
  5.                  Exit function
  6.               End If
  7.               ItemToSelect=i
  8.     End If
复制代码
至于你的问题,你可以自己想想,如果没有成功的匹配项、只有一个匹配项,有多个匹配项的时候,ItemToSelect的值都是多少!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-5-22 09:59:36 | 只看该作者
多谢楼上兄弟指教了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-17 18:44 , Processed in 0.067596 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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