В Tcl-скриптах конец строки всегда представляется
единственным символом новой строки (\n). Однако, в реальных файлах и устройствах
конец строки может быть представлен разными символами или наборами символов
в зависимости от используемой платформы или даже конкретного устройства.
Например, на UNIX- платформах символ новой строки используется в файлах,
в то время как для сетевых соединений используется последовательность “возврат
каретки — новая строка”. При вводе данных (например, при исполнении команд
gets или read) система
ввода — вывода Tcl сама автоматически преобразует внешнее представление
конца строк во внутреннее представление (символ новой строки). При выводе
(например, при команде puts) также происходит
преобразование ко внешнему формату представления конца строки. Значение
аргумента по умолчанию равно auto. При этом символы конца строки
для большинства ситуаций правильно определяются автоматически. Однако, опция
-translation позволяет при необходимости задать соответствующие
символы в явном виде.
Аргумент mode задает представление
конца строки для каналов, открытых только на чтение или только на запись.
Список {inMode outMode} определяет представление конца строки для
каналов ввода — вывода. Пользователь может указать в списке единственный
символ, который будет использоваться и для ввода, и для вывода. Однако,
при запросе команда возвратит текущие установки в виде списка из двух
одинаковых элементов.
Поддерживаются следующие значения опции:
auto
При вводе в качестве конца строки могут
использоваться символ возврата каретки (cr), символ новой строки
(lf), или их последовательность (crlf). Причем разные
строки могут заканчиваться по-разному. Все эти представления будут переведены
в символ новой строки. При выводе используется разное представление
для различных платформ и каналов. Для сетевых соединений на всех платформах
используется crlf, для всех Unix- платформ — lf, для Macintosh
— cr, а для всех Windows-платформ — crlf.
binary
Никакого преобразования символов конца
строки не производится. Это значение опции очень схоже со значением
lf, однако, при значении binary
пустая строка воспринимается как конец файла (см. описание опции -eofchar).
cr
В качестве символа конца строки используется
возврат каретки (cr). Соответственно, при вводе символ возврата
каретки преобразуется в символ новой строки, а при выводе, наоборот,
символ новой строки преобразуется в символ возврата каретки. Это значение
опции используется, обычно, на Macintosh-платформах.
crlf
В качестве символа конца строки используется
последовательность “возврат каретки — новая строка” (crlf). Соответственно,
при вводе последовательность “возврат каретки — новая строка” преобразуется
в символ новой строки, а при выводе, наоборот, символ новой строки преобразуется
в последовательность “возврат каретки — новая строка”. Это значение
опции используется обычно на Windows-платформах и при сетевых соединениях.
lf
В качестве символа конца строки используется
символ новой строки (lf). Никакого преобразования символов конца
строки при вводе и выводе не происходит. Это значение опции используется,
обычно, на UNIX-платформах.