Cтраница 2
О Ввод-вывод, управляемый списком и NAMELIST-ВВОД-ВЫВОД для внутренних файлов. [16]
Многие Паскаль-машины используют внешние запоминающие устройства и для внутренних файлов. [17]
В программах Chimes, Beeper и Short компилятор автоматически генерировал внутренний файл определения модуля, очень похожий на тот, что сопровождает программу LAOTZU. Компилятор оказался способен на это, так как файлы определения модуля для самых простых Windows-программ выглядят почти идентично. [18]
Если символьная переменная является динамическим массивом или его частью, массив перед использованием внутреннего файла должен быть размещен в памяти. Если символьная переменная является указателем, он должен быть связан с адресатом. [19]
Предположим, программе передано действительное имя файла и пусть с ее помощью устанавливается соответствие между внешним именем и внутренним файлом. [20]
Далее по введенным габаритным размерам коррозионного дефекта ПМК рассчитывает матрицу остаточных толщин дефекта и ее параметры ( количество значений вдоль оси трубы и в окружном направлении и величину шагов между значениями в осевом и в окружном направлении относительно трубы) и формирует соответствующий внутренний файл значений остаточных толщин. При этом коррозионный дефект представляется как след эллипсоида с заданными габаритными размерами. [21]
Внутренний файл, который является символьным массивом, символьным производным типом или массивом другого типа. Внутренний файл такого типа представляет собой последовательность элементов, каждый из которых является записью. Последовательность записей совпадает с порядком элементов массива или производного типа, а длина записи равна длине одного элемента массива или длине элемента производного типа. [22]
Внешний файл подсоединяется к устройству ввода-вывода в результате выполнения оператора OPEN. Для внутреннего файла идентификатором устройства служит имя строки или символьного массива. [23]
Это не так страшно: просто при программировании нужно учитывать тот факт, что операции с файлами протекают значительно медленнее по сравнению с прочими операциями данной Паскаль-машины. Но поскольку внутренние файлы используются только в текущей программе и обращение к ним осуществляется с помощью идентификатора, то программисту не приходится заботиться о месте хранения и названии массива данных. Это могут уладить между собой Паскаль-машина и система управления файлами. К сожалению, изобретатели версии Паскаля UCSD не придерживались этого стандарта, что вынуждает программиста самому беспокоиться о таких мелочах. [24]
Внутренние файлы обычно используют, когда требуется выполнить преобразование между внешним символьным представлением и внутренним представлением. Считывание из внутреннего файла преобразует ASCII-представление в числовое, логическое или символьное представление и наоборот. Эта особенность позволяет считывать строку символов, не зная ее точного формата, проверять ее и интерпретировать содержимое. [25]
Основными операторами ввода-вывода являются READ и WRITE. Оператор READ передает данные из внешнего или внутреннего файла в программу. Оператор WRITE передает данные во внешний или внутренний файл. Форма вызова этих операторов зависит от вида форматирования и типа файла, из которого производится считывание данных. Различается также набор допустимых спецификаторов. Рассмотрим возможные варианты вызова этих операторов. Поскольку в приведенных ниже примерах часто используется символ &, напомним, что он не является частью оператора ввода или вывода, а обозначает продолжение строки программы. [26]
Переменные в памяти могут вести себя как файлы на диске. Когда переменные используются таким образом, они называются внутренними файлами. Есть два типа внутренних файлов. [27]
Каждый файл связан с логическим устройством. Логическое устройство задается значением соответствующего спецификатора Спецификатор устройства для внутреннего файла - это имя символьной переменной, связанной с ним. Вообще говоря, максимальное значение номера логического устройства зависит от реализации. [28]
С внутренними файлами используются только операторы READ и WRITE. Использование операторов OPEN, CLOSE, REWIND, BACKSPACE и INQUIRE с внутренними файлами не допускается. [29]
Почему процедура COPY полезна. Большинство операционных систем дают возможность определить, какие внешние файлы, наборы данных или устройства ввода-вывода соответствуют внутренним файлам Вашей программы. Это соответствие устанавливается после компиляции программы, во время ее выполнения. Те системы, которые не поддерживают такое определение файлов, можно пополнить, чтобы в них определялось соответствие с помощью нашего стандартного интерфейса. Это означает, что у Вас под рукой могут быть программы, готовые к запуску, а решить, какой файл или устройство использовать, можно в последний момент. Это означает также, что подобные программы Вы можете рассматривать как черные ящики и совершенно забыть об их внутреннем устройстве. Если имеется примитив GETC, предназначенный для чтения данных из стандартного ввода, типа файла INPUT, обычно связанного с Паскаль-программой, и имеется примитив PUTC, предназначенный для записи в стандартный вывод, типа файла OUTPUT, то Вы можете связать их с соответствующими файлами и устройствами в процессе выполнения программы. [30]