51Testing软件测试论坛

标题: QTP函数返回数组后怎么赋值 [打印本页]

作者: chuhaida    时间: 2011-8-5 16:29
标题: QTP函数返回数组后怎么赋值
我在QTP中写了一个函数Public function a()
  for j = 0 to n
    redim preserve tmparry(i)
    tmparry(i) = value
    i = i + 1
  next
a = tmparry'返回动态数组
end function


dim x()
x=a()    这种赋值是错误的,怎么样才正确
作者: sean007    时间: 2011-8-5 16:49
很多错误哈
作者: sean007    时间: 2011-8-5 16:53
Public function a()
   i = 10
   x = 0
   redim preserve tmparry(i)
  for j = 0 to 9
   
    tmparry(x) = 10
    x = x + 1
  next
  
a = tmparry'返回动态数组
end function

Dim x
x = a()
msgbox x(1)
作者: sean007    时间: 2011-8-5 16:54
for j = 0 to n
    redim preserve tmparry(i)

你写的每次循环都在redim 一下数组....... 前面的数据都没有了...
我想你要的是这种效果.
作者: chuhaida    时间: 2011-8-5 16:56
首先,函数的编译是通过的,只是没有详细写出来
我错误的是
x = a()这一行脚本  (QTP提示出错)
对函数返回的数组的赋值,这个语法怎么写很纠结
作者: chuhaida    时间: 2011-8-5 16:58
回复 3# sean007

搞定了,谢谢
作者: sean007    时间: 2011-8-5 17:41
你那样做,没错但是逻辑上是有问题的.`
除非你的业务或者算法目的是这个,否则当你redim 的时候 你前面所 有的数据都没有保存下来了.
作者: 阳光下的橙子    时间: 2011-8-5 18:17
去看看动态数组的语法把
作者: 17800455    时间: 2011-8-7 15:04
国为vbs就是种变量类型。根据这原理。不需要定义成什么。

直接返回给一个变量就行。  接着的变量,是根据返回的值类型定的。

x= a()
for i = lbound(x) to ubound(x)
      msgbox x(i)
next
作者: chuhaida    时间: 2011-8-7 20:11
回复 9# 17800455
嗯,后来我也发现了,VB真是让人很蛋疼




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