Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен / шпора по турбо паскалю.docx
Скачиваний:
285
Добавлен:
10.02.2014
Размер:
385.64 Кб
Скачать

15. Работа с файлами в Паскале

Порядок работы с файлами в Паскале:

1. Описать тип файловой переменной. Например, переменная f в зависимости от типа файла может быть описана так:

var

f : file of <тип>;

или

var

f : text;

или

var

f : file;

Тип file описывает линейную последовательность компонент, указанного типа. Тип файла Text означает файл, состоящий из строк символов.

2. Связать файловой переменной с именем файла - команда Assign(f). Одновременно в программе может быть открыто несколько десятков файлов, каждый из которых должен иметь свою файловую переменную.

3. Открыть файл командой Rewrite(f) для записи во вновь создаваемый файл или Reset(f) для чтения/записи уже имеющегося файла. Если открывается существующий текстовый файл, то используем команду Append(f).

4. Осуществить чтение или запись в файл - команды Read или Write соответственно (для построчной работы с текстовыми файлами можно использовать соответственно ReadLn или WriteLn). Например, команда записи в файл выглядит так: Write(f, а), где f - файловая переменная; а - переменная любого типа (byte, real, string и т. д., соответствующая типу файла). При обращении к командам Read/Write позиция чтения/записи в файле автоматически увеличивается на единицу.

5. Закрыть файл - команда Close(f).

Пример программы, демонстрирующей возможные действия с файлом:

Var

f: text;

Begin

Assign(f, 'TEST.TXT'); { связываем файловую переменную f }

{ c именем файла 'TEST.TXT' }

Rewrite(f); { Создаем новый файл }

WriteLn(f,'Исходный текст'); { Записываем строку в файл }

Close(f); { Закрываем файл }

Append(f); { Открыть файл для добавления}

{ в его конец строки }

WriteLn(f,'Добавляемый текст'); { Добавляем строку }

Close(f); { Закрываем файл}

End.

Ниже приведено описание процедур и функций Паскаля, работающих с файлами:

Процедура Append(var f : Text); Открывает существующий текстовый файл f для дополнения.

Процедура Assign(var f; name : String); Связывает внешний файл с именем name и переменную файлового типа f. Все дальнейшие операции с переменной f будут выполняться с указанным внешним файлом.

Процедура Close(var f); Закрывает открытый файл, связанный с переменной f.

Функция Eof(var f); типа Boolean; Показывает значение Истина (True) при наличии признака конца файла для типизированных или нетипизированных файлов, указываемых файловой переменной f.

Функция FilePos(var f); типа Longint; Показывает текущую позицию в файле, указываемом переменной f. Если эта позиция в конце файла, то функция возвращает значение, равное длине файла, а если в начале файла, значение 0.

Функция FileSize(var f); типа Longint; Показывает текущий размер файла f в байтах. Если файл пуст, то 0.

Процедура Reset(var f [ : file; RecSize : Word ] ); Открытие существующего файла. Имя внешнего файла, связанного с f, должно быть ранее определено. Необязательный параметр RecSize: размер записи нетипизированного файла.

Процедура Rewrite(var f : file [;RecSize : Word ] ); Создает и открывает новый файл. Если такой файл уже есть, то он удаляется и создается новый с тем же именем.

Процедура Seek(var f; n : Longint); Перемещает текущую позицию файла к элементу с номером n (не может быть использована для текстовых файлов, первая позиция равна 0).

Процедура Truncate(var f); Усекает размер файла f до текущей позиции в файле.

Ниже приведен пример программы на Паскале, которая открывает сразу два файла (один для чтения, а второй создает вновь для записи). Командой Readln(f1,s); из первого файла считывается строка s. В цикле For организуется доступ к ее отдельным символам и производится замена буквы k на K. Затем преобразованная строка сохраняется во втором файле. Считывание строк проводится в цикле repeat-until и завершается при нахождении конца первого файла Eof(f1).

Var

f1,f2:text;

s:string;