Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методичка- програм ХалЗР.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
252 Кб
Скачать
☆
  1. Файловый тип данных. Описание и использование типизированных файлов

Файл – это структура, представляющая собой последовательность компонент одного типа, расположенных на внешнем устройстве. В языке программирования Pascal файл – это тип переменной. Значением такой переменной является реальный файл, расположенный на внешнем устройстве. Его компоненты могут быть любого типа, кроме файлового. Число компонент в файле не объявляется. Файловый тип описывается следующим образом:

type имя типа =file of тип компонент; {типизированный файл}

имя типа =text; {текстовый файл}

{в Object Pascal: имя типа=textfile}

имя типа =file; {нетипизированный файл}

var имя переменной: имя типа;

Типизированный файл содержит компоненты одного и того же объявленного типа. Длина каждой компоненты типизированного файла постоянна, поэтому можно организовать прямой доступ к компоненте по ее порядковому номеру. Компоненты файла нумеруются с нуля.

Например: type text1=file of string;

student=record

fam, name:string[30];

grup:integer

end;

univ=file of student;

var f: univ; s: text1;

Процедуры и функции для типизированных файлов

  1. Файлы становятся доступны программе только после связывания переменной типа файл с именем существующего или вновь создаваемого файла, а также указания направления обмена информацией: чтение из файла или запись в него. Файловая переменная связывается с файлом на диске с помощью процедуры:

assign(файловая переменная, имя файла);

{в Object Pascal: assignfile(файловая переменная, имя файла);}

имя файла – строковое выражение, значение которого есть имя файла, записанное в соответствии с правилами MS DOS.

Например: assign(f, ‘d:\ped\a.121’); assign(s,’d:\b.pas’);

  1. Процедура reset(файловая переменная) открывает существующий файл, с которым связана файловая переменная, и указатель текущей компоненты файла указывает на начало файла, то есть на компоненту с порядковым номером 0. Например: reset(f);

  2. Процедура rewrite(файловая переменная) открывает новый пустой файл, с которым связана файловая переменная, и указатель текущей компоненты файла указывает на начало файла. Например: rewrite(s);

  3. Процедура close(файловая переменная) закрывает файл на диске, с которым связана файловая переменная. Например: close(f); close(s); В Object Pascal используется closefile(файловая переменная).

  4. Процедура read(файловая переменная, список переменных) читает значения для переменных списка из файла, с которым связана файловая переменная. После чтения каждого значения указатель файла сдвигается к следующей компоненте файла. Переменные в списке и компоненты файла должны быть одного и того же типа.

Например: read(f,a); read(s,b,c); {f,s – файловые переменные; a: student; b,c: string }

  1. Процедура write(файловая переменная, список выражений) записывает значения выражений списка в файл, с которым связана файловая переменная. Указатель файла при этом устанавливается в конце очередной записанной компоненты. Значения выражений в списке должны быть того же типа, что и компоненты файла.

Например: write(f,a); write(s,’алгоритм’); {f,s – файловые переменные; a: student}

  1. Процедура seek(файловая переменная, N) смещает указатель файла, с которым связана файловая переменная, к компоненте с номером N. Компоненты в файле нумеруются с нуля.

Например: seek (f,0); seek(s,4);

  1. Процедура truncate(файловая переменная) удаляет часть файла, начиная с текущей позиции и до его конца. Например: truncate (f);

  2. Процедура erase(файловая переменная) уничтожает файл на диске, с которым связана файловая переменная. Перед выполнением этой процедуры необходимо закрыть файл. Например: erase(f);

  3. Процедура rename(файловая переменная, новое имя файла) переименовывает файл, с которым связана файловая переменная. Новое имя файла – строковое выражение, значением которого является имя файла в соответствии с правилами MS DOS. Перед выполнением этой процедуры необходимо закрыть файл.

Например: rename(f, ‘d:\ped\b.121’);

  1. Функция eof (файловая переменная) принимает значение true, если указатель текущей компоненты файла находится в конце файла, и false – в противном случае. Используется, главным образом, при организации цикла для чтения данных из файла: while not(eof(f)) do … или repeat … until eof(f).

  2. Функция filepos (файловая переменная) возвращает номер текущей компоненты файла, с которым связана файловая переменная.

Например: writeln(filepos(f));

  1. Функция filesize (файловая переменная) возвращает количество компонентов файла, с которым связана файловая переменная.

Например: seek(f,filesize(f)); {устанавливает указатель в конец типизированного файла}