next up previous contents
След.: Дескрипторы текста Выше: Форматирование ввода/вывода Пред.: Дескрипторы данных   Содержание

Управляющие дескрипторы

Дескрипторы Tn, TLn, TRn и nX определяют позицию, в которую следующий символ будет выведен или введен. Соответственно, n определяет номер позиции, с которой будет начата транзакция; число позиций для сдвига влево; и вправо. Позиция левой границы равна 1. Это позволяет пропускать или использовать повторно символы при вводе и перезаписывать символы при выводе. Дескриптор nX равносилен TRn и служит для ввода разделяющих пробелов.

Дескриптор / означает конец передачи данных в/из текущей записи. При вводе из последовательного или потокового файла остаток записи пропускается, а позиция в файле устанавливается в начало следующей записи. При выводе в последовательный или потоковый файл создается новая пустая запись после текущей записи. Для файлов прямого доступа номер записи увеличивается на единицу.

Дескриптор «двоеточие» прерывает форматирование, если в списке больше нет данных. Если есть, дескриптор игнорируется. Используется, например, для предотвращения вывода пояснений.

Дескрипторы знака SS, SP и S временно изменяют режим знака, задаваемый спецификаторами SIGN операторов ввода/вывода. Равнозначны, соответственно, значениям 'SUPRESS', 'PLUS' и 'PROCESSOR_DEFINED' спецификатора. Напомним, что управление знаком определяет, выводить ли необязательный знак «плюс» перед положительными данными числового типа. Соответственно, режим подавляет вывод знака «плюс», выводит его всегда или отдает решение на усмотрение системы. Дескрипторы влияют только на вывод и только числовых данных (дескрипторы I,F,E,EN,ES,D и G). Действуют до конца списка или до следующего такого же дескриптора.

Аналогично действуют дескрипторы BN и BZ -- временно изменяют режим интерпретации пробелов при вводе, заданный спецификатором BLANK. Соответственно равносильны значениям 'NULL' и 'ZERO'. В первом случае пробелы игнорируются, а во втором -- считаются нулями (кроме ведущих пробелов).

Дескрипторы округления RU, RD, RZ, RN, RC и RP временно изменяют режим округления, задаваемый спецификатором ROUND. Дескрипторы аналогичны значениям 'UP', 'DOWN', 'ZERO', 'NEAREST', 'COMPATIBLE' и 'PROCESSOR_DEFINED'. Влияют только на ввод/вывод вещественных данных.

Дескрипторы Dc и DP временно изменяют режим вывода десятичной точки, задаваемый спецификатором DECIMAL, и равнозначны значениям 'COMMA' и 'POINT'. Десятичная точка выводится в виде запятой либо точки.

Дескриптор P задает масштабный множитель $ k$ при форматировании вещественных (и комплексных) данных. При вводе под управлением дескрипторов F, E, EN, ES D и G, если в поле нет экспоненты, число делится на $ 10^k$ ; если экспонента есть, множитель игнорируется. Округление проводится после масштабирования. При выводе под управлением F число умножается на $ 10^k$ (округление до умножения). При выводе под управлением E и D значащая часть умножается на $ 10^k$ , а экспонента уменьшается на $ k$ . Дескрипторы EN и ES при выводе множитель игнорируют. Дескриптор G при выводе игнорирует множитель, если величина данных допустима для дескриптора F; если же это не так, то применяются правила дескриптора E.



Ilya A. Chernov 2012-12-19
X