Известно существование многих версий Паскаля, каждая из которых имеет свои особенности и отличия от стандарта Паскаля. Рассмотрим некоторые приемы работы с файлами в системе TurboPascal.
Перед началом работы с файлами (до первого обращения к файлу) должна быть выполнена процедура ASSIGN. Эта процедура отождествляет имя файла с соответствующей файловой переменной:
assign (var F: file; NAME: string),
где NAME – имя файла на диске; F – имя файловой переменной.
После выполнения этой процедуры NAME и F отождествляются. Например, ASSIGN (F, 'nomfile') отождествляет файловую переменную F с его именем на диске. В качестве имени файла может быть указано его полное имя, т.е. путь к этому файлу, например:
ASSIGN (F, 'С:\WORK\ MIM\nomfile').
После окончания работы с файлом последний должен быть закрыт процедурой CLOSE, иначе результат может быть потерян, так как директория не будет обновлена:
CLOSE (var F:file),
где F – имя файловой переменной.
Процедуры ASSIGN и CLOSE взаимосвязаны и работают в паре друг с другом. Как уже было сказано, перед началом работы с файлом выполняется процедура ASSIGN (F, 'nomfile'), которая для логического файла F готовит (ищет) на диске в указанной директории файл с именем NOMFILE. При окончании работы с файлом по выполнению процедуры CLOSE происходит его обновление (в случае записи) и закрытие (в случае чтения).
В программе надо уметь задавать исходные файлы. Эти файлы надо делать в цикле, используя при этом формирование компонент, либо в форме некоторого выражения по RANDOMIZE, либо задействовать обычную команду READ для ввода данных с клавиатуры. Цикл можно делать FOR, если формирование файла идет по RANDOMIZE, или WHILE (REPEAT), если файл формируется по признаку конца ввода.
Напомним, что RANDOMIZE – процедура инициализации генератора случайных величин; RANDOM – функция генерации случайных чисел.
Рассмотрим все эти особенности на примере формирования, обработки и вывода файлов.
П р и м е р. Для двух целочисленных файлов F и G одинаковой длины образовать третий целочисленный файл H, компоненты которого определяются по правилу: Hi = MAX{Fi, Gi}. В программе предусмотреть вывод на экран всех трех файлов.