chuhaida 发表于 2011-8-5 16:29:51

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:16

很多错误哈

sean007 发表于 2011-8-5 16:53:17

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:19

for j = 0 to n
    redim preserve tmparry(i)

你写的每次循环都在redim 一下数组....... 前面的数据都没有了...
我想你要的是这种效果.

chuhaida 发表于 2011-8-5 16:56:29

首先,函数的编译是通过的,只是没有详细写出来
我错误的是
x = a()这一行脚本(QTP提示出错)
对函数返回的数组的赋值,这个语法怎么写很纠结

chuhaida 发表于 2011-8-5 16:58:06

回复 3# sean007

搞定了,谢谢

sean007 发表于 2011-8-5 17:41:36

你那样做,没错但是逻辑上是有问题的.`
除非你的业务或者算法目的是这个,否则当你redim 的时候 你前面所 有的数据都没有保存下来了.

阳光下的橙子 发表于 2011-8-5 18:17:58

去看看动态数组的语法把

17800455 发表于 2011-8-7 15:04:51

国为vbs就是种变量类型。根据这原理。不需要定义成什么。

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

x= a()
for i = lbound(x) to ubound(x)
      msgbox x(i)
next

chuhaida 发表于 2011-8-7 20:11:13

回复 9# 17800455
嗯,后来我也发现了,VB真是让人很蛋疼
页: [1]
查看完整版本: QTP函数返回数组后怎么赋值