Понятие нетипизованных файлов используется в Turbo Pascal для организации доступа к наборам данных независимо от их структуры. При этом файл представляется как последовательность символов произвольного типа.
Нетипизованные файлы представляют собой каналы ввода-вывода нижнего уровня, используемые в основном для прямого доступа к любому файлу на диске, независимо от его типа и структуры.
Любой нетипизованный файл описывается словом file без атрибутов. Например:
DataFile: file;
Открытие непизованных файлов, как и типизированных, происходит с помощью стандартной функции Assign.
Для нетипизованных файлов в процедурах Reset и Rewrite допускается указывать дополнительный параметр, чтобы задать размер записи, использующийся при передаче файла. По историческим причинам принимаемая по умолчанию длина записи равна 128 байтам. Предпочтительной длиной записи является длина записи, равная 1, поскольку это единственное значение, которое позволяет точно отразить размер любого файла (когда длина записи равна 1, то в файле не могут присутствовать неполные записи, то есть записи с меньшей длиной).
За исключением процедур Readи Write для всех нетипизованных файлов допускается использование любой стандартной процедуры, которые допускается использовать с типизованными файлами. Вместо процедур Read и Write здесь используются соответственно процедуры Blockrеаd и BlockWrite позволяющие пересылать данные с высокой скоростью.
BlockRead(Var F:File; Var Buf; Count:Word; Var Result:Word);
Процедура считывает из файла в переменную одну или более запись.
Здесь:
F – имя файловой переменной;
Buf – буферная переменная, из которой будет происходить запись;
Count– число записей читаемых за один вызов;
Result – количество фактически занесённых записей;
BlockWrite(Var F:File; Var Buf; Count:Word; Var Result:Word);
Процедура записывает одну или более запись из переменной в файл.
Здесь:
F– имя файловой переменной;
Buf – буферная переменная, из которой будет происходить запись;
Сount – число записей читаемых за один вызов;
Result – количество фактически записанных данных;
Процедура возвращает текущую позицию в файле.
Процедура возвращает текущий размер файла.
Процедура устанавливает текущую позицию в файле на заданный элемент.
Здесь Значение –текущий № компонента.
Процедура усекает размер файла до заданной в файле позиции.
Процедура принудительный сброс содержимого буфера на внешний носитель. Однако сброса может и не быт , так как данная процедура оперирует лишь внутренним программным буфером
Пример:
Программа быстрого копирования, в которой имя исходного файла запрашивается у пользователя