Программирование в среде Delphi. Часть 3. Файлы. Садовская О.Б. - 25 стр.

UptoLike

Составители: 

25
3.5 Типизированные файлы
Типизированный файл содержит элементы одного типа . Тип эле-
ментов может быть любым, кроме файлового. Создать и просмотреть
такой файл при помощи текстового редактора как текстовый файл
нельзя . Поэтому обработка таких файлов должна осуществляться про -
граммным путём . Напомним, что описание файловой переменной, со-
ответствующей типизированному файлу имеет вид :
var <имя файловой переменной> : file of <тип>;
Для чтения данных из типизированного файла применяется про -
цедура read. Список ввода процедуры read должен содержать пере -
менные того же типа , что и элементы файла . Для записи в типизи -
рованный файл используется процедура write, список вывода которой
должен содержать переменные того же типа , что и элементы файла .
Процедуры readln и writeln для типизированных файлов не приме-
няются .
Доступ к текстовым файлам возможен только последовательно, то
есть, когда элемент считывается или записывается , указатель файла
перемещается к следующему по порядку элементу файла . К типизи -
рованным файлам можно организовать прямой доступ с помощью
стандартной процедуры
procedure seek( var f; n:longint);
которая перемещает файловый указатель в типизированном файле,
связанном с файловой переменной f, на элемент с номером n. Нуме-
рация элементов в файле начинается с нуля . Для определения теку -
щей позиции в файле используется функция
function filepos( var f):longint;
Для определения размера файла используется функция
function filesize( var f):integer;
                                       25




                        3.5 Т ипизированные ф айлы
       Т ипизирова н н ый ф а йл сод ерж ит э лем ен ты од н ого типа . Тип э ле-
м ен тов м ож ет б ыть лю б ым , кром е ф а йлового. Созд а ть и просм отрет ь
т а кой ф а йл при пом ощи т екст ового ред а кт ора ка к т екст овый ф а йл
н ельзя . П оэ том у об ра б отка т а ких ф а йлов д олж н а осу ществля т ься про-
гра м м н ым пу т ём . На пом н им , что описа н ие ф а йловой перем ен н ой, со-
от вет ст ву ю щей типизирова н н ом у ф а йлу им еет вид :
                    var <им я ф а йловой перем ен н ой> : file of <тип>;
       Для чт ен ия д а н н ых из типизирова н н ого ф а йла прим ен я ет ся про-
цед у ра read. Список ввод а процед у ры read д олж ен сод ерж а т ь пере-
м ен н ые т ого ж е типа , что и э лем ен т ы ф а йла . Для за писи в т ипизи-
рова н н ый ф а йл использу ет ся процед у ра write, список вывод а которой
д олж ен сод ерж а т ь перем ен н ые того ж е т ипа , что и э лем ен ты ф а йла .
П роцед у ры readln и writeln д ля типизирова н н ых ф а йлов н е прим е-
н я ю т ся .
       Дост у п к т екст овым ф а йла м возм ож ен только послед ова т ельн о, то
ест ь, когд а э лем ен т считыва ет ся или за писыва ет ся , у ка за т ель ф а йла
перем еща ет ся к след у ю щем у по поря д ку э лем ен т у ф а йла . К типизи-
рова н н ым ф а йла м м ож н о орга н изова т ь пря м ой д ост у п с пом ощью
ст а н д а рт н ой процед у ры
                               procedure seek( var f; n:longint);
кот ора я перем еща ет ф а йловый у ка за т ель в т ипизирова н н ом ф а йле,
свя за н н ом с ф а йловой перем ен н ой f, н а э лем ен т с н ом ером n. Ну м е-
ра ция э лем ен тов в ф а йле н а чин а ет ся с н у ля . Для опред елен ия т еку -
щей позиции в ф а йле использу ет ся ф у н кция
                             function filepos( var f):longint;
Для опред елен ия ра зм ера ф а йла использу ет ся ф у н кция
                             function filesize( var f):integer;