- •Курс «основы алгоритмизации и программирования»
- •Тема: «создание и преобразование файлов»
- •1. Понятие файла.
- •1.1. Типизированные файлы.
- •1.1.1. Определение файлового типа.
- •1.1.2. Процедуры и функции обработки файлов.
- •П р о ц е д у р ы
- •Основные логические устройства, которые используются в Турбо Паскале
- •Ф у н к ц и и
- •1.1.3. Файлы последовательного доступа.
- •1.2. Текстовые файлы.
- •Процедуры и функции обработки текстовых файлов
- •П р о ц е д у р ы
- •Ф у н к ц и и
- •1.4. Файлы произвольного доступа.
- •1.5. Нетипизированные файлы.
- •3. Индивидуальные задания.
- •Файлы последовательного доступа
- •Текстовые файлы
- •Файлы произвольного доступа
- •Контрольные вопросы
- •Тема: «создание и преобразование файлов»
- •- Страница 17 -
Ф у н к ц и и
Процедуры осуществляют все необходимые действия по организации файлов и доступу к элементам файлов. С целью выполнения дополнительных действий, облегчающих программисту обслуживание уже существующих файлов, широко используются специальные функции.
Eof()– проверить маркер «конец файла». Значение функции равноTrue, если указатель файла находится сразу за последним элементом файла, иFalse– в любом другом случае.
FilePos()– определить текущий номер элемента файла. Функция возвращает целое значение, равное номеру элемента, на котором в данный момент установлен указатель файла. Отсчет номера элемента осуществляется с нуля.
FileSize()– определить длину файла. Функция возвращает целое значение, которое равно количеству элементов файла, соответствующего переменной.
IOResult– проверить результат выполнения последней операции ввода-вывода на наличие ошибок. Если обнаружена ошибка, то возвращается ее номер. Если ошибок нет, о возвращается значение 0. Эта функция используется при пассивном состоянии директивы компилятораI {$I-}.
Полный набор стандартных процедур и функций для обработки файлов определяется конкретной реализацией.
1.1.3. Файлы последовательного доступа.
Файлы последовательного доступа используются для решения задач, требующих поочередной обработки компонентов файла при отсутствии жестких ограничений на время решения задачи. Работа с последовательным файлом предполагает создание файла, его обработку и корректировку. Для создания последовательного файла необходимо выполнить следующие шаги:
присвоить имя файловой переменной (процедура Assign);
открыть (создать) новый файл (процедура Rewrite);
подготовить информацию для ввода;
записать в файл компоненты (процедура Write);
закрыть созданный файл (процедура Close).
При обработке файла выполняются те же шаги, но нужно открыть уже существующий файл (процедура Reset) и последовательно считывать компоненты (процедураRead). При расширении файла новые компоненты записываются сразу за последним компонентом корректируемого файла. В качестве примера рассмотрим программу создания и печати файла, которая может иметь следующий вид:
program pr;
uses printer;
var a:real; {промежуточная переменная}
f: file of real;{создаваемый файл}
i: integer; {счетчик элементов}
n:integer; {число элементов базы}
begin
{создание файла}
Assign(f,’li.lab”); {присвоить имя li.lab}
Rewrite(f); {создать файл на диске}
Writeln(‘Введите длину файла’);
Readln(n);
for i:=1 to n do
begin
Writeln(‘Введите’,i:3,’-й элемент файла’);
Realn(a); {ввести элемент}
Write(f,a) {записать элемент в файл}
end;
Close(f);{закрыть файл}
{чтение и печать созданного файла}
Writeln(lst,’созданный файл’);
Reset(f); {установить указатель в начало файла}
for i:=1 to n do
begin
Read(f,a);
Writeln(lst,i:3,’-й элемент =’,a)
end
end.