51Testing软件测试论坛

标题: [提问]这个TCL脚本哪里写错了? [打印本页]

作者: linwenyan    时间: 2007-10-26 22:32
标题: [提问]这个TCL脚本哪里写错了?
set FileId1 [open D:/data.txt r]
set FileId2 [open D:/result.txt w]
gets $FileId1 str1
set len [llength $str1]
set i 0
while {![eof $FileId1]} {
        gets $FileId1 str2
        while {$i<$len} {
                puts $FileId2 "[lindex $str1 $i]        : [lindex $str2 $i]"
                incr i 1
                }
        puts $FileId2 "                                           "
        }
close $FileId1  
close $FileId2

帮忙看一下这个脚本有什么错误?只能输出第一次循环的结果,不知道问题出在哪里?
谢谢
作者: dpdpdp    时间: 2007-10-26 22:59
gets $FileId1 str1
set len [llength $str1]
这两句之后len=1
所以
作者: linwenyan    时间: 2007-10-26 23:18
原帖由 dpdpdp 于 2007-10-26 22:59 发表
gets $FileId1 str1
set len [llength $str1]
这两句之后len=1
所以


谢谢
不过len=10
里面的循环没问题,是外层的循环出问题了。
作者: dpdpdp    时间: 2007-10-26 23:19
忘了问 这个脚本要实现什么功能?
作者: linwenyan    时间: 2007-10-26 23:23
把一个文件的数据按行读取
然后按 a : b 这样的格式输出到另一个文件中
作者: dpdpdp    时间: 2007-10-26 23:27
形如
data.txt:
a b c d e...
f g h i j k ...
要得到什么样的result.txt?
作者: linwenyan    时间: 2007-10-26 23:28
这个脚本运行后只输出了第一行转换格式后的结果,其它行都没有
作者: linwenyan    时间: 2007-10-26 23:29
a :f
b :g
c :h
……
作者: dpdpdp    时间: 2007-10-26 23:30
加我QQ 2742111 一起研究
作者: linwenyan    时间: 2007-10-26 23:32
a  b c  d
e  f  g  h
i   j  k   l  
……
输出:
a : e
b : f
c : g
d : h

a : i
b : j
c : k
d : l

……
作者: dpdpdp    时间: 2007-10-26 23:33
多行情况也是类似处理是吗 行转换成列 然后中间加冒号
作者: linwenyan    时间: 2007-10-27 00:07
原来是i赋值出了问题 ,谢谢dpdpdp指点
因为set i 0放在while循环外面,所以当外层while循环一次以后再循环第二次时由于i没有重新赋值,内层while循环无法执行,导致没有输出,所以只要把set i 0放到外层while循环里面就可以了

set FileId1 [open D:/data.txt r]
set FileId2 [open D:/result.txt w]
gets $FileId1 str1
set len [llength $str1]
while {![eof $FileId1]} {
        set i 0
        gets $FileId1 str2
        while {$i<$len} {
                puts $FileId2 "[lindex $str1 $i]        : [lindex $str2 $i]"
                incr i 1
                }
        puts $FileId2 "                                           "
        }
close $FileId1  
close $FileId2
作者: dpdpdp    时间: 2007-10-27 22:12
其实我白痴了 一上来没搞清楚状况就开始撇了

这就是需求没明确,呵呵
作者: JetSky    时间: 2009-12-21 23:26
路过学习。




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