
- •Лекция 7 Подпрограммы, модули, файлы
- •1. Подпрограммы
- •1.1 Глобальные данные
- •1.4 Процедуры
- •1.5. Передача массивов в качестве параметров
- •1.5.1. Формальные параметры как массивы с фиксированными размерами
- •Var {main – главная программа }
- •1.5.2. Формальные параметры как массивы со «свободными» размерами
- •1.6. Передача подпрограммы как параметра
- •1.7. Рекурсивные подпрограммы
- •2. Модули
- •Interface {интерфейс модуля}
- •Implementation {реализация }
- •3. Файлы. Основные понятия и операции
- •3.1. Последовательный доступ к компонентам файла
- •3.2. Типизированные файлы
- •Стандартные процедуры и функции работы с типизированными файлами
- •3.3. Текстовые файлы
- •Процедуры и функции работы с текстовыми файлами
3.2. Типизированные файлы
Если все операции ввода-вывода с файлом используют данные некоторого определенного типа T, то такой файл называют типизированным. Такому файлу соответствует тип файловой переменной – file of T.
Часто компонентами типизированного файла являются записи.
Пример описания типизированного файла:
type
Student = record name : string[20]; gruppa : string[5]; number: integer; end;
Var
F: file of Student;
Стандартные процедуры и функции работы с типизированными файлами
Assign(F, Str) – процедура определения файловой переменной. F – файловая переменная, Str – строка, содержащая путь к файлу и его имя.
Rewrite(F) – процедура открытия файла для записи (создание нового файла).
Reset(F) – процедура открытия существующего файла для чтения.
Read(F, P) – процедура чтения данных из файла. P – переменная того же типа, что и компоненты файла.
Write(F, P) – процедура записи данных в файл.
Seek(F, n) – процедура устанавливает указатель текущей позиции файла на компонент с порядковым номером n (n = 0, 1, 2, …). Обеспечивает прямой доступ к данным.
Close(F ) – процедура закрытия файла.
Truncate(F) – процедура уничтожает все компоненты файла, начиная с текущего, и подготавливает файл для записи.
Eof(F) – функция проверки маркера конца файла. Функции возвращает True, если указатель текущей позиции файла находится сразу за по-
следней его компонентой, и False – в противном случае.
FilePos(F) – функция возвращает номер текущего компонента файла.
FileSize(F) – функция возвращает длину файла – количество компонент в файле.
IOResult(F) – функция возвращает код ошибки последней операции ввода-вывода. Если IOResult(F) = 0, операция ввода-вывода успешно завершилась – ошибки нет. Для использования данной функции в программе необходимо отключить системную обработку ошибок ввода-вывода {$I-} перед выполнением операции с файлом, а потом вернуть обработку ошибок системе – {$I+}.
Пример:
var
F: file of byte;
begin
Assign(F, 'MyFile');
{$I-} Reset(F);
{$I+}
if IOResult = 0 then
Writeln('Размер файла в байтах: ', FileSize(F))
else
Writeln('Файл не найден');
end.
3.3. Текстовые файлы
Текстовый файл – это файл, компонентами которого являются символы. Текстовые файлы – это одна из форм последовательных файлов. Поэтому с ними можно производить те же действия, что и с последовательными файлами.
Особенностью является наличие специальной процедуры (Append) открытия существующего файла для записи в него новых компонент.
Формат описания файловых переменных текстового файла:
<имя файловой переменной> : text;
Процедуры и функции работы с текстовыми файлами
Assign(F, Str) – процедура определения файловой переменной. F – файловая переменная, Str – строка, содержащая путь к файлу и его имя.
Rewrite(F) – процедура создания нового файла. Файл открывается для записи. Указатель текущей позиции в файле устанавливается на начало файла.
Append(F) – процедура открытия существующего файла для добавления (записи) данных. Указатель текущей позиции в файле устанавливается на его конец.
Reset(F) – процедура открытия существующего файла для чтения.
Указатель текущей позиции в файле устанавливается на начало файла.
Close(F) – процедура закрытия файла.
Read(F, Ch) – процедура считывания символа из файла. Ch – перемен-
ная типа char.
Write(F, Ch)– процедура записывает символ в файл.
Readln(F, Str)– процедура считывает строку из файла. Str– переменная типа string.
Writeln(F, Str)– процедура записывает строку в файл.
Eoln(F)– функция возвращает True, если указатель текущейпозиции в файле достиг маркера конца строки.
SeekEof(F) – функция возвращает True, если указатель текущей позиции в файле достиг маркера конца файла.