Волгоградский государственный педагогический университет
Кафедра общей физики
Информатика Часть 2
Основы программирования на языке PASCAL
Лабораторная работа №12
Работа с файлами
Волгоград
2007
Составитель: Глазов С.Ю., доцент кафедры общей физики ВГПУ
Информатика. ч.2. Основы программирования на языке Pascal. Лабораторная работа №12
Работа с файлами
2007.
Лабораторная работа №12
Основы программирования на языке PASCAL
Работа с файлами.
Цель работы: изучить основные принципы работы с файлами и каталогами в Object Pascal; научиться использовать Ini – файлы для сохранения настроек программ.
Различают файлы трех видов: текстовые файлы, типизированные файлы и нетипизированные файлы.
Алгоритм работы с файлами:
Открыть файл.
Связать файловую переменную с конкретным файлом на диске.
Указать для файла направление передачи данных (инициировать файл).
Читать или записывать данные файла.
Закрыть файл.
Файлы становятся доступны программе только после выполнения процедуры
AssignFile (var F : <тип файла>; FileName: string), которая связывает имя внешнего файла FileName с файловой переменной F.
Пример:
var FText : TextFile; {описание файловой переменной текстового файла}
FTip : File of integer;{описание переменной типизированного файла }
FNotTip : File; { описание переменной нетипизированного файла }
begin
AssignFile(FText,’c:\result.txt’);
AssignFile(FTip,’c:\int.dat’);
AssignFile(FNotTip,’c:\data.dat’);
...
Текстовые файлы
Текстовые файлы состоят из последовательностей символов, разбитых на строки. В Object Pascal предопределен тип TextFile, соответствующий текстовому файлу и объявление файловой переменной имеет вид:
var <имя файловой переменной> : TextFile;
Работа с текстовыми фалами осуществляется процедурами и функциями файлового ввода/вывода. Основные процедуры чтения - Read, Readln, Write и Writeln.
Append (var F: TextFile) - Открывает существующий текстовый файл, связанный с файловой переменной F, для добавления в его конец.
ChDir(S: string) - изменяет текущий каталог на заданный параметром S.
CloseFile( Var F) - закрывает открытый файл, связанный с файловой переменной F.
Eof(var F) : Boolean - возвращает true при достижении конца файла, связанного с файловой переменной F.
Eoln(var F: Text): Boolean - возвращает признак конца строки (true) в текстовом файле, связанном с файловой переменной F.
Erase(var F) - удаляет внешний файл, связанный с файловой переменной F.
FilePos(var F): Longint - возвращает текущую позицию типизированного или нетипизированного файла, связанного с файловой переменной F. Позиция, соответствующая началу файла - 0.
FileSize( var F):Integer - возвращает текущий размер файла, связанного с файловой переменной F . Не используется для текстовых файлов.
Flush(var F: Text) - очищает буфер выходного текстового файла, связанного с файловой переменной F.
GetDir - возвращает S - текущий каталог диска, указанного параметром D, который может равняться: 0 - текущий диск, 1 - диск A, 2 - диск B, 3 - диск C и т.д. Каталог заносится в S без заключительного символа слэш, например, "c:\mydir".
IOResult : Integer - возвращает целое значение, характеризующее код ошибки выполнение последней операции ввода/вывода.
MkDir(S : String) - создает подкаталог, заданный с полным путем параметром S.
Read(F, <список переменных>) - читает из файла, связанного с файловой переменной F, одно или более значений в одну или более переменных.
Readln(var F: Text; <список переменных>) - читает одно или более значений в одну или более переменных и переходит на начало следующей строки текстового файла, связанного с файловой переменной F.
Rename(var F; Newname) - переименовывает внешний файл, связанный с файловой переменной F, давая ему имя Newname. Переименование может сочетаться с переносом в другой каталог и на другой диск, если в Newname указан полный путь к переименованному файлу.
Reset(var F [: File;RecSize: Word]) - открывает существующий файл, связанный с файловой переменной F. Параметр RecSize задается для нетипизированных файлов и устанавливает длину записи в байтах (по умолчанию 128).
Rewrite(var F: File [; Recsize:Word]) - создает и открывает новый файл, связанный с файловой переменной F. Параметр RecSize задается для нетипизированных файлов и устанавливает длину записи в байтах (по умолчанию 128).
RmDir(S : String) - удаляет пустой подкаталог, заданный параметром S.
Seek(var F; N: Longint) - перемещает текущую позицию в типизированном или нетипизированном файле, связанном с файловой переменной F, в позицию N. Для текстовых файлов не используется.
SeekEof ( Var F: Text) : Boolean - Возвращает true при достижении конца текстового файла, связанного с файловой переменной F.
SeekEoln ( Var F: Text) : Boolean - Возвращает true при достижении конца строки текстового файла, связанного с файловой переменной F.
SetTextBuf(Var F: Text; Var Buf [; Size: Integer]) - связывает буфер ввода/вывода Buf размера Size (задавать не обязательно) с текстовым файлом, связанным с файловой переменной F.
Truncate(var F) - Усекает типизированный или нетипизированный файл, связанный с файловой переменной F, на текущей позиции.
Write(var F; <список выражений>) - записывает одно или более значений в файл, связанный с файловой переменной F.
Writeln(var F: Text;<список Выражений >) - записывает одно или более значений в файл и затем заносит маркер конца строки в текстовый файл, связанный с файловой переменной F.