Spec-Zone.ru › Tcl/Tk

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API