- •Оглавление
- •Виды данных
- •Программирование линейных алгоритмов
- •Программирование разветвляющихся алгоритмов
- •Программирование циклических алгоритмов
- •Описание и использование типа массив
- •Ввод и вывод массивов
- •Процедуры и функции для работы со строками
- •Описание и использование данных строкового типа
- •Операции над строками
- •Описание и использование процедур и функций
- •Функции
- •Формальные и фактические параметры
- •Описание и использование типа запись
- •Описание и использование множеств
- •Файловый тип данных. Описание и использование типизированных файлов
- •Описание и использование текстовых файлов
- •Модуль пользователя
- •Объектно-ориентированное программирование. Классы. Основные понятия
- •Основные понятия
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Составляющие класса Поля
- •Свойства
- •Программные файлы. Файл проекта. Файл формы
- •Система программирования Delphi
- •Основные окна Delphi
- •Литература
Файловый тип данных. Описание и использование типизированных файлов
Файл – это структура, представляющая собой последовательность компонент одного типа, расположенных на внешнем устройстве. В языке программирования 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;
Процедуры и функции для типизированных файлов
Файлы становятся доступны программе только после связывания переменной типа файл с именем существующего или вновь создаваемого файла, а также указания направления обмена информацией: чтение из файла или запись в него. Файловая переменная связывается с файлом на диске с помощью процедуры:
assign(файловая переменная, имя файла);
{в Object Pascal: assignfile(файловая переменная, имя файла);}
имя файла – строковое выражение, значение которого есть имя файла, записанное в соответствии с правилами MS DOS.
Например: assign(f, ‘d:\ped\a.121’); assign(s,’d:\b.pas’);
Процедура reset(файловая переменная) открывает существующий файл, с которым связана файловая переменная, и указатель текущей компоненты файла указывает на начало файла, то есть на компоненту с порядковым номером 0. Например: reset(f);
Процедура rewrite(файловая переменная) открывает новый пустой файл, с которым связана файловая переменная, и указатель текущей компоненты файла указывает на начало файла. Например: rewrite(s);
Процедура close(файловая переменная) закрывает файл на диске, с которым связана файловая переменная. Например: close(f); close(s); В Object Pascal используется closefile(файловая переменная).
Процедура read(файловая переменная, список переменных) читает значения для переменных списка из файла, с которым связана файловая переменная. После чтения каждого значения указатель файла сдвигается к следующей компоненте файла. Переменные в списке и компоненты файла должны быть одного и того же типа.
Например: read(f,a); read(s,b,c); {f,s – файловые переменные; a: student; b,c: string }
Процедура write(файловая переменная, список выражений) записывает значения выражений списка в файл, с которым связана файловая переменная. Указатель файла при этом устанавливается в конце очередной записанной компоненты. Значения выражений в списке должны быть того же типа, что и компоненты файла.
Например: write(f,a); write(s,’алгоритм’); {f,s – файловые переменные; a: student}
Процедура seek(файловая переменная, N) смещает указатель файла, с которым связана файловая переменная, к компоненте с номером N. Компоненты в файле нумеруются с нуля.
Например: seek (f,0); seek(s,4);
Процедура truncate(файловая переменная) удаляет часть файла, начиная с текущей позиции и до его конца. Например: truncate (f);
Процедура erase(файловая переменная) уничтожает файл на диске, с которым связана файловая переменная. Перед выполнением этой процедуры необходимо закрыть файл. Например: erase(f);
Процедура rename(файловая переменная, новое имя файла) переименовывает файл, с которым связана файловая переменная. Новое имя файла – строковое выражение, значением которого является имя файла в соответствии с правилами MS DOS. Перед выполнением этой процедуры необходимо закрыть файл.
Например: rename(f, ‘d:\ped\b.121’);
Функция eof (файловая переменная) принимает значение true, если указатель текущей компоненты файла находится в конце файла, и false – в противном случае. Используется, главным образом, при организации цикла для чтения данных из файла: while not(eof(f)) do … или repeat … until eof(f).
Функция filepos (файловая переменная) возвращает номер текущей компоненты файла, с которым связана файловая переменная.
Например: writeln(filepos(f));
Функция filesize (файловая переменная) возвращает количество компонентов файла, с которым связана файловая переменная.
Например: seek(f,filesize(f)); {устанавливает указатель в конец типизированного файла}
