51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5276|回复: 15
打印 上一主题 下一主题

[求助]请问tsl中求数组长度的函数是什么?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2005-8-25 15:49:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在遇到问题,我在tsl 手册中怎么也没找到答案,恳请大虾小小的回答以下.

我有数组a[];
欲求数组a的元素个数,在c里面是用count函数的,tsl里面没有这个函数.
请教一下,是用什么函数,还是说tsl没有这个函数需要自己写?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2005-8-26 14:31:30 | 只看该作者
哪位大虾指点一下~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2005-10-18 15:50:18 | 只看该作者
关注中,有哪位同仁解决此问题的
共享下解决方法

[ Last edited by bunny on 2005-10-18 at 15:53 ]
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2005-10-18 17:49:45 | 只看该作者
举例回答你的问题:


static hosts [ ] ={10,13,23,233};
for(i in hosts)

report_msg(hosts[i]);

#数组下标从0开始
report_msg("数组含有元素个数为"&(i+1));
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2005-10-18 17:50:27 | 只看该作者
运行一下脚本就会理解了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2005-10-18 18:36:14 | 只看该作者
顺便说一下:
如果脚本中数组下标这么定义,就不能这么用了:
static hosts [] ={"i"=101,"j"=100,"k"=1000};
report_msg(hosts["i"]);
report_msg(hosts["j"]);
report_msg(hosts["k"]);

这时只能一个下标一个下标的找(因为此时的下标是字符):
if  ("i" in hosts)
计数加1;
if  ("j" in hosts)
计数加1;
if  ("k" in hosts)
计数加1;


呵呵,所以还是做好不要这样定义数组.

[ Last edited by aswoon911 on 2005-10-18 at 18:38 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2005-10-18 19:01:45 | 只看该作者
原来是这样实现的啊,呵呵,看了TSL参考手册中操作符in的用法后,终于了解了。谢谢楼上的前辈~
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2005-10-19 10:06:11 | 只看该作者
你的方法是问题的:
在TSL对IN操作苻的解释有这样的话:The order in which the subscripts are read is undefined.
我在第一个脚本的基础上改了下:
static hosts [ ] ={10,12,13,3,1,233};
for(i in hosts)
report_msg(i);
for(i in hosts)
report_msg(hosts[i]);

#数组下标从0开始
report_msg("数组含有元素个数为"&(i+1));

大家运行下就知道原因了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2005-10-19 10:40:13 | 只看该作者
To:迎风
呵呵,哪里敢当前辈,大家一起讨论嘛,互相学习.

To:johngan
嗯,真的有问题,以前用的都倏忽了,奇怪以前怎么没发现.

想想改进方法:
static hosts [ ] ={10,12,13,3,1,233};
for(i in hosts)
report_msg(i);
max_dimension=0;
for(i in hosts)
{if(i>max_dimension)
  max_dimension=i;
report_msg(hosts[i]);
}

#数组下标从0开始
report_msg("数组含有元素个数为"&(max_dimension+1));

不知可否?
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2005-10-19 10:59:22 | 只看该作者
原来通过in操作符取得的i值并不确定,因为每次循环i都是取数组中的随机(即不确定)位置,因此最后一次的i值也只是数组中的某位置下标值,并不是数组中元素的个数。既然这样,可以通过设置一个计数变量嵌在for循环中来实现计数,比如:

static hosts [ ] ={10,12,13,3,1,233};

#设置计数变量并初始化
count=0;

for(i in hosts)
{
        report_msg(hosts[i]);
        count=count+1;
}
#数组下标从0开始
report_msg("数组含有元素个数为"&count);
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2005-10-19 11:02:58 | 只看该作者
可以了。以后要多讨论啊
上面的也是好方法啊~

[ Last edited by johngan on 2005-10-19 at 11:05 ]
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2005-10-19 11:30:23 | 只看该作者
to:aswoon911

前辈客气了,因为偶才刚刚开始自学WR与TSL,因此这里的大家都是前辈,希望以后在学习或实践过程中碰到问题能向你们请教与交流,谢谢~

to:johngan

谢谢你提醒,昨天的确没注意到in的细节,看来读英文文档还是不能马虎啊。以后一定多交流,握手~
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2005-10-19 11:42:43 | 只看该作者
你专门做测试的吗?我是刚刚起步啊,很多不明白啊,谢谢了
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2005-10-19 11:50:21 | 只看该作者
以前做过几个小项目中间件的开发与测试,现在是专门做测试的了,但自动化测试这块还不熟悉,尤其是MI的主流商业工具与TSL,现在开始自学。那以后经常交流了,请大家多多关照^^
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2005-10-19 12:33:25 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2006-7-26 20:13:07 | 只看该作者
对于二维数组如何取得行数与列数呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-28 10:14 , Processed in 0.076436 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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