У меня скрипт меняющий топик по таймеру и из списка берет рандом т.е. случайно. и хотелось бы чтоб он брал по списку начиная с 1 по n .... Помогите решить этот вопрос. За ранее благодарю.
namespace eval randtopic {
# файл с текстом, откуда брать случайную строчку для топика
variable file "file.txt"
# канал, в котором будет вестись смена топика
variable channel "#suntar"
if {![file readable $file]} {
set f [open $file w+]
close $f
}
bind time - {* * * * *} [namespace current]::change
proc change {mins hours days months years} {
variable file
variable channel
# проверяем время (300 секунд это 5 минуты)
# следующая строчка делит без остатка текущее значение минут,
# которое передается в процедуру по бинду. если остаток ноль,
# значит минуты равны 0, 10, 20 и т.д.
if {[expr $mins % 180] == "0"} {
# открываем файл на чтение
set f [open $file r]
# читаем файл
set data [split [read $f] \n]
# закрываем файл
close $f
# получаем случайную строчку
set line [lindex $data [rand [llength $data]]]
# меняем топик
putserv "TOPIC $channel :$line"
}
}
putlog "randtopic.tcl loaded"
}