Типизированные и нетипизированные файлы.
Длина любого компонента типизированного файла строго постоянна, что дает возможность организовать прямой доступ к каждому из них (т.е. доступ к компоненту по его порядковому номеру).
Перед первым обращением к процедурам ввода-вывода указатель файла стоит в его начале и указывает на первый компонент с номером 0. После каждого чтения или записи указатель сдвигается к следующему компоненту файла. Переменные в списках ввода-вывода должны иметь тот же тип, что и компоненты файла. Если этих переменных в списке несколько, указатель будет смещаться после каждой операции обмена данными между переменными и дисковым файлом.( READ, WRITE, SEEK, FILESIZE, FILEPOS
)
Нетипизированные файлы объявляются как файловые переменные типа FILE
и отличаются тем, что для них не указан тип компонентов. Отсутствие типа делает эти файлы, с одной стороны, совместимыми с любыми другими файлами, а с другой -позволяет организовать высокоскоростной обмен данными между диском и памятью.
При инициации нетипизированного файла процедурами RESET
или REWRITE
можно указать длину записи нетипизированного файла в байтах.
1)Assign(f,s)-определение файла.
2)rewrite(f)-открытие файла для перезаписи или создания файла при помощи оператора.
3)reset(f)-открытие и чтение файла.(для типизированных файлов)
4)Append(f)-открытие файла для добавления в конце ещё текст.
5)close(f)-закрытие файла.
6)read,readln,write,writeln(f,<text>)-чтение из файла и запись в файл.
7)seek(f,h)-переход в заданной записи в файле.
8)eof(f)-функция принимает значение try если курсор стоит в конце файла.
9)size of(f)-размер файла(сколько символов).
Особенности обработки типизированных файлов.
Файл с типом (типизированный файл) состоит из последовательности записей одинаковой длины и одинакового внутреннего формата. Записи следуют непрерывно друг за другом. Первые 4 байта первого сектора файла содержат количество и длину записи. К файлам с такой организацией можно обращаться последовательно и выборочно (с прямым доступом).
При последовательном доступе записи располагаются на внешнем носителе последовательно в порядке их поступления, т.е. чтение или запись I+1 компоненты возможно только послеI–ой компоненты.
При прямом доступе предполагается, что данные располагаются в определенных областях, имеющих последовательные номера, начиная с нуля. Вычисляя значение указателя, фиксирующего номер записи, можно обеспечить прямой доступ к нужной записи, используя процедуру позиционирования SEEK
.
Общий вид описания типизированного файла:
TYPE
< идентификатор типа >= FILE OF
< тип компонент >;
Например:
1 2 |
TYPE T = FILE OF REAL; VAR F: T; |
В первом варианте тип файла описан в разделе описания типов, а затем в разделе описания переменных файловая переменная получает этот тип, во втором варианте тип предварительно не описывается. В третьем варианте предварительно описывается тип записи файла, а в разделе описания переменных этот тип используется для указания типа отдельной записи.
Процедуры чтения и записи для файлов с типом READ
и WRITE
. Кроме того, используются процедуры и функции ASSIGN, RESET, REWRITE, SEEK, CLOSE,FILEPOS, FILESIZE, EOF
. Процедура TRUNCATE
обрезает файл на заданной файловой позиции.
Пусть требуется создать файл из записей, данные которых вводятся с клавиатуры. После создания файла содержимое файла вывести на экран.
Структура записи файла следующая:
- фамилия;
- табельный номер;
- заработная плата.