Скачать презентацию Файлы Физический файл область памяти на Скачать презентацию Файлы Физический файл область памяти на

Файлы.pptx

  • Количество слайдов: 20

Файлы Файлы

Физический файл – область памяти на внешнем носителе, в которой хранится некоторая информация Логический Физический файл – область памяти на внешнем носителе, в которой хранится некоторая информация Логический файл – представление физического файла в программе

Для работы с файлами определяется так называемый файловый тип Файловый тип – произвольная последовательность Для работы с файлами определяется так называемый файловый тип Файловый тип – произвольная последовательность элементов, длина которой заранее не определена, а конкретизируется в процессе выполнения программы На физическом уровне существуют файлы, но для работы с ними на уровне программ определяются т. н. файловые переменные, имеющие файловый тип (сорри за тавтологию).

Способы доступа к файловой переменной: • Последовательный • Прямой В первом случае для того, Способы доступа к файловой переменной: • Последовательный • Прямой В первом случае для того, чтобы обратиться к n-ному элементу файловой переменной, необходимо последовательно обработать (n – 1) предшествующих ему элементов. Во втором – возможно прямое обращение к конкретному элементу (почти как в массиве).

Виды переменных файлового типа: • Текстовые (Text) • Файлы с типом (File of <type>) Виды переменных файлового типа: • Текстовые (Text) • Файлы с типом (File of ) • Файлы без типа (File) File of Text <Тип>

Указатель файла • Связан с каждым открытым файлом • Другие названия: окно файла, текущая Указатель файла • Связан с каждым открытым файлом • Другие названия: окно файла, текущая позиция файла • Определяет позицию доступа (элемент файла, с которым выполняется следующая операция ввода/вывода) • Конец файла никак не помечается!

Операции над переменными файлового типа: • Их нет Работа с файлами осуществляется с помощью Операции над переменными файлового типа: • Их нет Работа с файлами осуществляется с помощью процедур и функций ввода-вывода

File Бинарный файл File Бинарный файл

procedure Assign. File (var F : File; File. Name : string); Связывает файловую переменную procedure Assign. File (var F : File; File. Name : string); Связывает файловую переменную F с файлом File. Name function File. Exists (File. Name : string) : boolean; Проверяет, существует ли файл Assign. File(F, 'C: Мои документыМои рисункиFile. Name. ini'); Assign. File(F, 'File. Name. ini'); If File. Exists('File. Name. ini') then begin bla-bla; end;

procedure Reset (var F : File; [Rec. Size : word]); открывает файл для чтения procedure Reset (var F : File; [Rec. Size : word]); открывает файл для чтения procedure Rewrite (var F : File; [Rec. Size : word]); открывает файл для записи • Две последние процедуры связывают файловую переменную F с файлом File. Name • Rec. Size – необязательный параметр, задаёт размер элемента файла в байтах • Если файл до этого был открыт, то он закроется и откроется заново в заданном режиме

procedure Close. File (var F : File); Закрывает файл function Eof (var F : procedure Close. File (var F : File); Закрывает файл function Eof (var F : File) : boolean; Проверяет, является ли текущая позиция концом файла while (not EOF(F)) do begin … end;

procedure Read (F : File, V 1. . Vn); Считывает компоненты файла в соответствующие procedure Read (F : File, V 1. . Vn); Считывает компоненты файла в соответствующие переменные procedure Write (F : File, V 1. . Vn); Записывает в файл компоненты из соответствующих переменных Var F : file of integer; value : integer; begin … read(F, value); write(F, value); end;

procedure Block. Read (F : File, var Buf; count : integer [; var Done procedure Block. Read (F : File, var Buf; count : integer [; var Done : integer]); Считывает не более count компонентов в переменную buf из файла F. Необязательный параметр Done – реально прочитанное количество. procedure Block. Write ( - // - ); Записывает не более count компонентов в файл F из переменной buf. Необязательный параметр Done – реально записанное количество.

procedure Seek (var F : File; N : long. Int); Перемещает указатель файла F procedure Seek (var F : File; N : long. Int); Перемещает указатель файла F в позицию N function File. Pos (var F : File) : Long. Int; Возвращает текущее положение указателя в файле F function File. Size (var F : File) : integer; Возвращает размер файла в компонентах

const FILE_NAME = ‘source. txt’ • var • F : file of integer; value const FILE_NAME = ‘source. txt’ • var • F : file of integer; value : integer; curr. Position : long. Int; begin Assign. File (F, FILE_NAME); if file. Exists (FILE_NAME) then begin Reset (F) while not EOF(F) do begin curr. Position : = file. Pos (F); read (F, value); seek (F, curr. Position) value = value * (-1); write (F, value); end; Close. File (F); end; В файле хранятся 4 -байтовые числа. Программа меняет знак каждого на противоположный и перезаписывает число в файл

Text Текстовый файл Text Текстовый файл

File of <Тип> Text • Файл считается последовательностью символов, интерпретируемых как текст • Не File of <Тип> Text • Файл считается последовательностью символов, интерпретируемых как текст • Не эквивалентно file of char (также, как string не эквивалентно array of char)

Доступно: • Assign. File • Reset (запись невозможна, только чтение) • Rewrite (только запись) Доступно: • Assign. File • Reset (запись невозможна, только чтение) • Rewrite (только запись) Появляется: procedure Append (var F : Text); • Открывает существующий файл для добавления • Помещает указатель на конец файла

 • Read (Reset only) • Write (Rewrite only) • Eof – то же • Read (Reset only) • Write (Rewrite only) • Eof – то же самое, что и в бинарном • Eoln ([var F : Text]) – определяет, является ли концом строки • Flush() – записывает данные, которые остаются в буфере в файл

Var Input : Text; Output : Text; Файлы объявлены в стандартной библиотеке и связаны Var Input : Text; Output : Text; Файлы объявлены в стандартной библиотеке и связаны непосредственно с консолью