Привет народ. Помогите со скриптом.
Есть файл .txt, размером 10мб
Нужно, чтобы по команде бот брал заданное кол-во строчек из файла, идущих подряд и писал их в канал по команде
Модератор: Модераторы
tvrsh писал(а):Читал вот это? post47.html#p47
Из какого места файла брать строчки?
tvrsh писал(а):Попробуй этот код:# Биндим команду
bind pub - !txt txtproc
# Начинается процедура
proc txtproc {nick uhost hand chan text} {
# Открываем условие. Если после команды число от 0 до 10, то выполнятся действия в первых скобках.
if {[isnumber $text] && $text > 0 && $text <= 10} {
# Имя файла который будем читать.
set fname "yourfile.txt"
# Открываем доступ к файлу для чтения (мы не ловим ошибки, однако
# можно использовать catch {} в случае если файл отсутствует.
set fp [open $fname "r"]
# Тут мы считываем все данные из файла.
set data [read -nonewline $fp]
# Закрываем файл.
close $fp
# Теперь разбиваем данные на отдельные строки.
set lines [split $data "\n"]
# получаем количество строк в файле.
set numlines [llength $lines]
# Выбираем номер случайной строки используя функцию rand.
set num [rand $numlines]
# Устанавливаем счетчик
set i 0
# Условие: пока счетчик меньше или равен числу в команде, то ...
while {$i <= $text} {
# Выводим в канал строку начиная со случайной...
putserv "PRIVMSG $chan :[lindex $lines [expr $num + $i]]"
# и каждый раз увеличивая ее номер на счетчик
incr i
}
} else {
# А эти действия для случая когда условия выше не выполняются.
putserv "PRIVMSG $chan :$nick, в команде укажите число строк от 0 до 10"
return 0
}
}
Как вывести эти строчки в канал в таком формате?
текст1 текст2 текст3
То есть, в строчку.
Вот остальные слова можно перевести на новое сообщение?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2