51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2616|回复: 16
打印 上一主题 下一主题

[原创] 如何比较两个function取出的值?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-10-26 10:22:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写了两个function函数,function1取了A、B、C三个值,function1取了e、f、g三个值,请教下如何对A、B、C和e、f、g进行比较?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-10-26 12:52:30 | 只看该作者
没明白楼主的意思  这些值是传入参数,还是返回的参数
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-10-26 13:03:05 | 只看该作者
回复 2# sspku
返回的值啊,就是写了个函数,取了A\B\C三个值,这三个值需要拿出来与其他函数的值比较
可以返回多个值吗?(不用数组)
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.7]测试师长

    4#
    发表于 2010-10-26 21:10:22 | 只看该作者
    目的是什么
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2010-10-27 22:35:56 | 只看该作者
    回复 4# msnshow

    就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
    main ()
    {
        dim var_value(1)
        dim i
       var_value = A
       FOR  i = 0 to  1
       msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
         Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
    }                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
      

        function A()
    {
        dim value(1)
        value(0)=a
        value(1)=b
        A=value   /返回一个数组
    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2010-10-27 22:42:20 | 只看该作者
    回复 4# msnshow

    就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
    main ()
    {
        dim var_value(1)
        dim i
       var_value = A
       FOR  i = 0 to  1
       msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
         Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
    }                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
      

        function A()
    {
        dim value(1)
        value(0)=a
        value(1)=b
        A=value   /返回一个数组
    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2010-10-27 22:42:28 | 只看该作者
    回复 4# msnshow

    就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
    main ()
    {
        dim var_value(1)
        dim i
       var_value = A
       FOR  i = 0 to  1
       msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
         Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
    }                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
      

        function A()
    {
        dim value(1)
        value(0)=a
        value(1)=b
        A=value   /返回一个数组
    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2010-10-27 22:42:40 | 只看该作者
    回复 4# msnshow

    就把两个函数的返回值拿出来作比较,我发现在QTP中,返回的数组有个问题想请教一下,例如
    main ()
    {
        dim var_value(1)
        dim i
       var_value = A
       FOR  i = 0 to  1
       msgbox  var_value(i)    /为什么这样子写会提示类型不匹配呢,而如果换成
         Next                               /msgbox  var_value(0)  msgbox  var_value(1)这样
    }                                         / 写就可以呢?这样单独写不利于调用返回的数组的啊
      

        function A()
    {
        dim value(1)
        value(0)=a
        value(1)=b
        A=value   /返回一个数组
    }
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2010-10-29 14:42:10 | 只看该作者
    dim var_value
        dim i
           
       var_value = A
       FOR  i = 0 to  1
       msgbox  var_value(i)  
         Next                              
                                    


    Public  function A()

        dim value(1)
        value(0)="a"
        value(1)="b"
        A=value  
    End Function

    这段代码可以运行的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2010-10-29 15:56:21 | 只看该作者
    回复 9# xieyang702
    谢谢,在QTP中好像不行的我再查查什么原因
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2010-10-29 17:19:55 | 只看该作者
    楼主,QTP好像不支持C语言啊。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-10-19 13:26
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    12#
    发表于 2010-10-29 18:11:54 | 只看该作者
    本帖最后由 kavensyw 于 2010-10-29 19:13 编辑

    用Dicitionary Object返回值
    简单示意如下

    Dim oDic1,odic2
    Set oDic1 = CreateObject("Scripting.Dictionary")
    Set oDic2 = CreateObject("Scripting.Dictionary")
    Call GetData1(oDic1)
    Call GetData2(oDic2)
    oItems1 = oDic1.Items
    oItems2 = oDic2.Items
    '假定两边数量一致
    '循环比较,去掉了左右空格
    For i=0 To oDic1.Count-1
    If Trim(oItems1(i))<>Trim(oItems2(i)) Then
         MsgBox "两边值不等:位置"&(i+1)&vbCrLf _
             &"左边-"&oItems1(i)&vbCrLf _
             &"右边-"&oItems2(i)                                
    End If
    Next
    oDic1.RemoveAll
    oDic2.RemoveAll
    Set oDic1 =Nothing
    Set oDic2 =Nothing

    'Key存放a,b,c
    'value存放e,f,g
    Function GetData1(oDic)
            Dim a,b,c
            'Example               
            a=1:b=2:c=3        
            oDic.Add 1,a
            oDic.Add 2,b
            oDic.Add 3,c
    End Function
    Function GetData2(oDic)
            Dim e,f,g
            'Example               
            e=1:f=555:g=3  
            oDic.Add 1,e
            oDic.Add 2,f
            oDic.Add 3,g
    End Function
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-10-29 22:43:47 | 只看该作者
    QTP  支持的 VBS
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2010-10-31 21:49:01 | 只看该作者
    回复 12# kavensyw

    谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-11-1 16:05:19 | 只看该作者
    本帖最后由 xieyang702 于 2010-11-4 12:15 编辑

    可以的呀,我就是在QTP里调试正确的啊

    运行前你需 勾选 vb 插件
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2010-11-8 13:22:41 | 只看该作者
    1.  返回数组
    2.  返回三个值的连接字符串
    写个比较函数  传两数组  或  俩字符串
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2010-11-9 17:43:49 | 只看该作者
    为什么不用VBS支持的StrComp方法呢,省时省力!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 11:04 , Processed in 0.085208 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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