[提问]这个TCL脚本哪里写错了?
set FileId1set FileId2
gets $FileId1 str1
set len
set i 0
while {!} {
gets $FileId1 str2
while {$i<$len} {
puts $FileId2 " : "
incr i 1
}
puts $FileId2 " "
}
close $FileId1
close $FileId2
帮忙看一下这个脚本有什么错误?只能输出第一次循环的结果,不知道问题出在哪里?
谢谢 gets $FileId1 str1
set len
这两句之后len=1
所以 原帖由 dpdpdp 于 2007-10-26 22:59 发表 http://bbs.51testing.com/images/common/back.gif
gets $FileId1 str1
set len
这两句之后len=1
所以
谢谢:)
不过len=10
里面的循环没问题,是外层的循环出问题了。 忘了问 这个脚本要实现什么功能? 把一个文件的数据按行读取
然后按 a : b 这样的格式输出到另一个文件中 形如
data.txt:
a b c d e...
f g h i j k ...
要得到什么样的result.txt? 这个脚本运行后只输出了第一行转换格式后的结果,其它行都没有 a :f
b :g
c :h
…… 加我QQ 2742111 一起研究 ab cd
efgh
i jk l
……
输出:
a : e
b : f
c : g
d : h
a : i
b : j
c : k
d : l
…… 多行情况也是类似处理是吗 行转换成列 然后中间加冒号 原来是i赋值出了问题 ,谢谢dpdpdp指点:)
因为set i 0放在while循环外面,所以当外层while循环一次以后再循环第二次时由于i没有重新赋值,内层while循环无法执行,导致没有输出,所以只要把set i 0放到外层while循环里面就可以了
set FileId1
set FileId2
gets $FileId1 str1
set len
while {!} {
set i 0
gets $FileId1 str2
while {$i<$len} {
puts $FileId2 " : "
incr i 1
}
puts $FileId2 " "
}
close $FileId1
close $FileId2 :lol 其实我白痴了 一上来没搞清楚状况就开始撇了
这就是需求没明确,呵呵 路过学习。:lol
页:
[1]