gets
Имя
gets — Читает строку из каналаСинтаксис
gets channelId ?varName?Описание
Эта команда считывает следующую строку из channelId, возвращает всё в строке до (но не включая) символа(ов) конца строки и отбрасывает символ(ы) конца строки.ChannelId должен быть идентификатором открытого канала, например, стандартного входного канала Tcl (stdin), возвращаемого значением вызова open или socket, или результатом команды создания канала, предоставленной расширением Tcl. Канал должен быть открыт для ввода.
Если varName опущено, строка возвращается как результат команды. Если varName указано, строка помещается в переменную с этим именем, а возвращаемое значение — количество возвращённых символов.
Если при поиске символа конца строки происходит конец файла, команда возвращает доступный ввод до конца файла. Если channelId находится в режиме без блокировки и полная строка ввода недоступна, команда возвращает пустую строку и не потребляет никакого ввода. Если varName указано и в varName возвращается пустая строка из-за конца файла или из-за недостатка данных в режиме без блокировки, то возвращаемое количество равно -1. Обратите внимание, что если varName не указано, случаи конца файла и недоступной полной строки могут давать те же результаты, как если бы имелась строка ввода, состоящая только из символов конца строки. Команды eof и fblocked могут использоваться для различения этих трёх случаев.
Пример
В этом примере файл считывается по одной строке за раз, и каждая строка выводится с присоединённым к началу номером текущей строки.set chan [open "some.file.txt"]
set lineNumber 0
while {[gets $chan line] >= 0} {
puts "[incr lineNumber]: $line"
}
close $chan См. также
file, eof, fblocked, Tcl_StandardChannels
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/gets.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TclCmd/gets.htm