【发布时间】:2015-04-08 18:06:10
【问题描述】:
我需要打印文件中新添加的行。 我的代码如下所示:
proc dd {} {
global line_number
set line_number 0
set a [open "pkg.v" r]
#global count
while {[gets $a line]>=0} {
incr line_number
global count
set count [.fr.lst2 size]
puts "enter $count"
if {[eof $a]} {
#.fr.lst2 insert end "$line"
# set count [.fr.lst2 size]
close $a
} elseif {$count > 0} {
.fr.lst2 delete 0 end
if {$count+1} {
.fr.lst2 insert end "$line"
puts "i am $count"
}
} else {
.fr.lst2 insert end "$line"
puts "i am not"
}
}
puts "$count"
}
【问题讨论】:
-
我们是在讨论最后添加的行吗?还是中间插入的线?我们是在 Windows 还是其他平台上?
-
由于您循环文件行的惯用方式,
[eof $a]在 while 循环中永远不会为真——eof在 previous 时返回真i> 文件读取命中文件结尾,此时,while 条件已经停止循环。
标签: tcl