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

Общие сведения

Формат -- это информация для оператора ввода или вывода о соответствии между строкой текста, содержащей некоторые данные, и внутренним представлением этих данных. Формат относится только к форматному вводу/выводу и задается либо строкой специального вида непосредственно в операторе ввода/вывода (в частности, как значение спецификатора FMT), либо в операторе FORMAT. Кроме того, символ * означает формат по умолчанию, определяемый списком вводимых или выводимых данных.

Оператор FORMAT имеет вид

метка FORMAT (дескрипторы формата)

Пробелы игнорируются и регистр не важен, за исключением дескриптора текста. Массив строк преобразуется в одну строку путем конкатенации в порядке следования элементов массива.

Дескрипторы формата делятся на дескрипторы данных, управляющие дескрипторы и дескрипторы текста. Дескрипторы данных могут предваряться натуральным числом -- повторителем или символом * -- неограниченным повторителем. Дескриптором считается также группа дескрипторов в круглых скобках (и перед ней может стоять повторитель). Дескрипторы разделяются запятыми, которая может быть опущена в следующих случаях: между дескриптором P и следующим за ним F, E, EN, ES или G, возможно, с повторителем; перед дескриптором / без повторителя; после дескриптора /; до или после дескриптора «двоеточие».

Повторитель эквивалентен повтору дескриптора указанное число раз. Неограниченный повторитель равносилен очень большому повторителю. Он удобен, например, для вывода массивов.

Перечислим сначала все дескрипторы. Заглавные символы -- собственно дескрипторы, символы нижнего регистра -- дополнительная информация, в квадратных скобках -- необязательные элементы.

Дескрипторы целых данных: Iw[.m], Bw[.m], Ow[.m], Zw[.m]

Дескрипторы вещественных (и комплексных) данных: Fw.d, Ew.d[Ee], Dw.d, ENw.d[Ee], ESw.d[Ee].

Дескриптор логических данных: Lw.

Дескриптор символьных данных: A[w].

Обобщенный дескриптор Gw[.d[Ee]],

Дескриптор форматирования, задаваемого пользователем, DT.

К числу управляющих дескрипторов относятся: дескрипторы управления позицией (Tn, TLn и TRn и nX с целым числом n); дескриптор конца записи / (возможно, с повторителем); дескриптор конца формата «двоеточие»; дескрипторы знака (SS, SP и S), пробелов (BN и BZ), округления (RU, RD, RZ, RN, RC и RP) и десятичной точки (DC и DP); дескриптор масштаба P с целым числом перед ним.

Дескриптор текста -- просто текстовая строка; применим только при выводе. Пробелы и регистр символов учитывается только в этом дескрипторе.

Полем называется часть записи, которая читается или записывается под управлением дескриптора данных или текста. Ширина поля -- это его длина в символах. Каждый дескриптор данных относится к одному объекту данных, за исключением комплексных данных, одному объекту соответствуют два дескриптора. При обнаружении очередного дескриптора данных проверяется наличие объекта данных в списке: если он есть, он выводится или вводится в или из записи, а если нет, то форматный ввод/вывод прекращается. Если встречается дескриптор «двоеточие» и очередного объекта данных нет, форматный ввод/вывод прекращается. Если достигнута закрывающая скобка и данных больше нет, форматный ввод/вывод прекращается. Но если данные еще есть в списке, происходит возврат к началу группы дескрипторов, ограниченной предыдущей закрывающей скобкой, не относящейся к дескриптору DT. Если такой группы нет, возврат происходит к началу формата.



Ilya A. Chernov 2012-12-19
X