0
Мне нужно напечатать строки, которые недавно добавлены в файл. Мой код выглядит следующим образом:Как распечатать недавно обновленные строки в tcl
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' возвращает true, когда * предыдущий * файл читает хиты в конце -file, и к этому моменту условие while уже остановило цикл. –