Язык процедур 2-REXX для OS-2


CHARIN


Функция CHARIN возвращает в качестве результата строку размером до указанной длины, состоящую из символов, прочитанных из вводного потока с указанным именем. Форма, в которой указывается имя, зависит от среды применения. Если имя опущено, то символы читаются из вводного потока STDIN:, определяемого по умолчанию. Длина, принимаемая по умолчанию, равна 1.

В устойчивых потоках позиция чтения ведется для каждого потока. В операционной системе OS/2 эта позиция та же, что и позиция записи. По умолчанию любое чтение из потока начинается с текущей позиции чтения. Когда чтение завершено, позиция чтения наращивается на величину прочитанных символов. Значение начала может быть указано для определения конкретной позиции чтения и должно быть целым положительным числом в пределах длины потока. Данная позиция чтения не может быть указана для переменных потоков (порт или другое последовательное устройство). Значение 1, указанное для начала, определяет первый символ в потоке.

Если значение длины задано равным нулю, то позиция чтения устанавливается по значению, указанному в начале, но символы не читаются и в качестве результата возвращается пустая строка.

В переменных потоках, если количество доступных символов меньше указанной длины, то выполнение программы временно приостанавливается до тех пор, пока достаточное количество символов не станет доступным. Если требуемое количество символов невозможно сделать доступным вследствие ошибки или других проблем, то будет сформировано условие NOTREADY и функция CHARIN вернет результирующую строку с количеством символов, меньшим, чем требовалось.

Ниже приведено несколько примеров: CHARIN(myfile,1,3) -> 'MFC' /* первые 3 */ /* символа */ CHARIN(myfile,1,0) -> '' /* в начало */ CHARIN(myfile) -> 'M' /* после последнего вызова */ CHARIN(myfile,,2) -> 'FC' /* после последнего вызова */

/* Чтение из вводного потока (здесь с клавиатуры) */ /* Пользователь вводит строку 'abcd efg' */ CHARIN( ) -> 'a' /* по умолчанию */ /* читается 1 символ */ CHARIN(,,5) -> 'bcd e'

Примечание 1:

Функция CHARIN в результирующую строку помещает все символы, встретившиеся во вводном потоке, включая символы перевода строки, возврата каретки и конца файла.

Примечание 2:

Если функция CHARIN используется для чтения с клавиатуры, то выполнение программы приостанавливается до тех пор, пока пользователь на нажмет клавишу Enter.



Содержание раздела