jiaolq_0 发表于 2007-6-13 10:06:19

关于TSL——the in operator

原语句如下:
for (i=0; i<5; i++)                                             #第一个for语句
{
date = time_str();
        date_array = date;
wait(5);
}
for(i=0;i<5;i++)                                              #第二个for语句                                    
{
print("date_array["i"]="date_array);
}

for (i in date_array)                                           #第三个for语句
{
print ("i= " &i);
print ("the date was " &date_array);
}
其输出结果:
date_array=Wed Jun 13 10:06:11 2007
date_array=Wed Jun 13 10:06:16 2007
date_array=Wed Jun 13 10:06:21 2007
date_array=Wed Jun 13 10:06:26 2007
date_array=Wed Jun 13 10:06:31 2007
i= 0
the date was Wed Jun 13 10:06:11 2007
i= 4
the date was Wed Jun 13 10:06:31 2007
i= 1
the date was Wed Jun 13 10:06:16 2007
i= 2
the date was Wed Jun 13 10:06:21 2007
i= 3
the date was Wed Jun 13 10:06:26 2007

我的疑问:
1、变量 i 做过第二个for循环后值应该是5,那它在第三个for循环时的第一值怎么会是0呢?好像 i 值的选取没有规律啊(顺序居然是04123)?
2、把这第一二个for语句存成第一个文件,第三个for语句存成第二个文件,先执行第一个文件,再执行第二个文件。第二个文件的 i 和date_array居然是取的第一个文件的值,为什么如果在一个文件中一个变量如果没有初值,它就提取最近其他文档中的值呢?

疑问多多,请高手帮忙解答一下,非常感谢!

[ 本帖最后由 jiaolq_0 于 2007-6-13 10:31 编辑 ]

dionysus 发表于 2007-6-20 13:42:51

这几天在家上不了网,工作的地方没有WR,所以不好准确的解答,帮lz顶一下吧,其他高手知道的解答一下sdlkfj3

kolecat 发表于 2007-6-20 14:49:31

我把这些脚本放一块执行后,报错了,最后一段for语句执行错误。

还有,怎么查不到关于 print 语句的介绍,有个printf 但是也没有看到相关介绍,只说是保留字。 希望lz解释一下print用法sdlkfj2

shiwomyw 发表于 2007-6-20 16:17:18

出现这错误提示的原因应该是"date_array"变量不是数值型;在我的机子上执行同样出这个错,不知道楼主是怎样执行通的?

关于"2、把这第一二个for语句存成第一个文件,第三个for语句存成第二个文件,先执行第一个文件,再执行第二个文件。第二个文件的 i 和date_array居然是取的第一个文件的值,为什么如果在一个文件中一个变量如果没有初值,它就提取最近其他文档中的值呢?"这个问题,应该是执行完脚本后,WR已经记住了date_array的值.每次都会去读取它的最新值.
不清楚,楼主做这个脚本的用途是什么,方便解释一下吗?

yemen126459 发表于 2007-6-20 16:49:50

for (i in date_array)中的i和date_array为不同类型!!!!!
执行过程中会有错误!

快乐逍遥 发表于 2007-6-20 16:51:10

1、for (i in date_array)   参考了一下wr user help, 使用in 是没指定顺序的
2、可能是你执行完第一个文件,没stop,date_array没有释放,接着运行第二个文件,就会取到之前运行得到的值喽

kolecat 发表于 2007-6-20 17:30:28

狂晕 阿, 我找书上的例子写了一个一模一样的

for(i=0;i<5;i++)
{
date = time_str();
date_array\ = date;
wait(5);
}

和楼主区别只在于我把 date_array申明成数组, date_array ,而且这也是书上的例子,居然通不过调试。
楼主那个不太能说的过去的例子居然能通过,晕死了,啥tsl阿

PS: 怎么转换方括号?? "[]",被自动过滤了

[ 本帖最后由 kolecat 于 2007-6-20 17:37 编辑 ]

kolecat 发表于 2007-6-20 17:39:30

原来论坛会过滤 方括号"[]"。。。。。。lz脚本显示不全吧

[ 本帖最后由 kolecat 于 2007-6-20 17:40 编辑 ]

jiaolq_0 发表于 2007-6-21 16:22:25

又执行了一遍,脚本没有报错

jiaolq_0 发表于 2007-6-21 16:40:30

to kolecat:
print和printf差不多,都是打开一个文件,然后将内容显示在这个文件中

yemen126459 发表于 2007-6-21 17:19:33

回复 #10 jiaolq_0 的帖子

for (i in date_array)                                           #第三个for语句
{
print ("i= " &i);
print ("the date was " &date_array);
}

这一段没报错吗?
页: [1]
查看完整版本: 关于TSL——the in operator