Теория: Система ввода/вывода


4. Система Ввода/Вывода

1. Записи

Основной единицей в файлах MS-FORTRAN является запись. Запись - это набор знаков или значений. Допускаются записи трех видов: форматные записи, бесформатные записи и записи конца файла.

  1. Форматные записи.
    Форматные записи - это набор знаков, заканчивающихся системным признаком конца строки. Форматные записи интерпретируют согласно с тем, как большинство операционных систем и файлов интерпретируют строку.
  2. Бесформатные записи.
    Бесформатные записи - это набор значений, не преобразуемых системой. Бесформатные файлы хранятся в виде физических записей. Двоичные файлы содержат только значения во внутреннем представлении и, исходя из этой информации нельзя, в общем случае, определить структуру записи.
  3. Запись конца файла.
    После последней записи в файле MS-FORTRAN инициирует запись конца файла. Метод представления конца файла частично зависит от операционной системы.

2. Файлы

Файл - это последовательность записей. Файлы бывают внешние и внутренние.

  1. Внешние файлы.
    Внешний файл - это либо файл на внешнем устройстве, либо само устройство.
  2. Внутренний файл.
    Знаковая переменная служащая источником или целью для какой-либо формальной операции ввода/вывода.

В дальнейшем, в данном руководстве внутренние файлы MS-FORTRAN, а так же файлы, доступные для операционной системы, именуются просто "файлы". Оператор OPEN обеспечивает связь между двумя понятиями файла, в большинстве случаев неопределенность исчезает после открытия файла, когда оба понятия совпадают.

2.1.Характеристики файлов

Файлы Фортрана имеют следующие атрибуты:

1. Имя.
2. Пoлoжeниe.
3. Cтpуктуpу (фopмaтныe, бecфopмaтныe или двoичныe).
4. Meтoд дocтупa (пocлeдoвaтeльный или пpямoй).

Имя фaйлa.

Файл может иметь имя. Имя, если оно присутствует, - это последовательность знаков, используемая операционной системой для распознавания файлов. Правила именования определяются операционной системой.

Положение файла.

Положение файла обычно устанавливается предшествующем положением ввода/вывода. Файл имеет: начальную точку, конечную точку, текущую запись, предыдущую запись и следующую запись. Возможно, что последующая запись идет за предыдущей, а текущей записи нет. При открытии файла устанавливается его начало. Если следующей операцией ввода/вывода являются WRITE (запись), все старые данные затираются. Положение файла после последовательного выполнения операций WRITE - конец файла, но не за пределом записи конца файла. Использование оператора ENDFILE (конец файла) помещает файл за записью конца файла, то же делает и оператор READ, выполняемый в конце файла. Вы можете определить конец файла, используя выражение END= в операторе READ (чтение).

Структура файлов.

Внешние файлы могут быть открыты как форматные, бесформатные или двоичные файлы. Все внутренние файлы являются форматными.

  1. Форматные.
    Фaйлы, cocтoящиe тoлькo из фopмaтныx зaпиceй.
  2. Бесформатные.
    Фaйлы, cocтoящиe тoлькo из бecфopмaтныx зaпиceй.
  3. Двоичные.
    Пoлeдoвaтeльнocть бaйтoв бeз внутpeннeй cтpуктуpы.

Методы доступа.

Внешние файлы открываются как файлы последовательного либо прямого доступа.

  1. Последовательный доступ.
    Файлы, содержащие записи, порядок следования которых определен порядком, в котором они были записаны (нормальный последовательный порядок). Эти файлы не могут быть прочитаны или записаны с помощью выражения RЕС= (определяет позицию прямого доступа).
  2. Прямой доступ.
    Файл, записи которого могут быть записаны или прочитаны в любом порядке (файл с произвольным доступом). Записи последовательно нумеруются, первая запись имеет номер 1. Записи имеют одинаковую длину, определяемую при открытии файла, каждая запись имеет собственный номер, определяемый при записывании записи.

В файлах прямого доступа возможно занесение записей в произвольном порядке (например 9,5 и 11) без занесения записей между ними. Невозможно удаление записанной записи; однако запись можно переписать, новым значением.

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

2.2.Особенности внутренних файлов

Внутренний файл - это символьная переменная или элемент символьного массива. Файл содержит только одну запись, совпадающую по длине с символьной переменной или элементом массива.

Если записывается не вся запись, оставшееся место заполняется пробелами. Положение файла всегда в начале файла, до выполнения операторов ввода/вывода. Внутренние файлы позволяют только форматный, последовательный ввод/вывод; внутренний файл могут определять только операторы ввода/вывода READ и WRITE.

Внутренние файлы обеспечивают механизм для использования форматных возможностей системы ввода/вывода для преобразования значений "в" и "из" представления внешних символов во внутренние структуры памяти MS-Фортрана. Так чтение символьных переменных преобразует символьные значения в числовые, логические или символьные значения, а запись символьных переменных позволяет преобразовать значения в их (внешнее) символьное представление.

Редакционная спецификация обратный слеш (\) не может быть использована во внутренних файлах.

Теория  Далее>>>

Rambler's Top100

Copyright © fortran-online.info, 2007