Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
№___230105__ МУ_лаб и пр_ОАиП_часть первая.docx
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
383.97 Кб
Скачать

Чтение из файла

После создания файла, мы можем прочитать из него информацию. Для этой цели необходимо вызвать процедуру чтения

Reset (Имя_Формального_Файла).

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

0

1

2

3

4

Если файл, который мы открываем для чтения пуст (не содержит ни одного элемента), то логическая функция EOF (Имя_Формального_Файла) выдаст значение True.

Чтение из файла осуществляется поэлементно с помощью процедуры

Read (Имя_Формального_Файла, Переменная_Для_Чтения).

... ... ... ... . ...

Var

F : Text;

{ Объявляем файловую переменную f }

{ вводим формальный файл типа «Текст» }

Ch : Char;

{ Объявляем переменную символьного }

{ типа для записи в файл }

Begin

Assign (f, ‘C:\Data.txt’);

{ Связываем формальный файл f с }

{ фактическим, имеющим имя Data.txt }

{ и расположенном на диске С }

Reset(f);

{ Открываем файл для чтения }

Read (f, ch);

{ Читаем из файла f элемент в }

{ переменную ch }

. . .

Close (f);

{ Закрываем файл f }

End.

Процедура Read считывает за одно прочтение один элемент файла. Прочитать из файла можно только весь элемент (компонент) целиком. Если элемент имеет сложную структуру (массив, строка, запись), он также читается из файла целиком, предварительно получив свое значение в файле.

Файловые типы языка Паскаль

Ввод-вывод информации в Паскале осуществляется через переменные файлового типа. Паскаль поддерживает три файловых типа:

текстовые файлы (типа Text);

типизированные (компонентные) файлы (типа File of <Тип>...);

нетипизированные файлы (типа File).

Работа с этими типами файлов отличается друг от друга.

Обычно все файлы считаются файлами последовательного доступа. Однако, к типизированным файлам (File of <Тип>...) и файлам без типа (File) помимо процедур, обеспечивающих последовательный доступ, можно применить процедуры прямого доступа

Текстовый файл - это набор кодов ASCII, включая расширенные и управляющие коды. Текстовые файлы организованы по строкам, в конце текстового файла всегда находится специальный символ, называемый маркер конца файла. Примером текстового файла может служить сама программа на языке Паскаль. Такой файл создается путем набора символов с использованием клавиатуры.

Типизированные или компонентные файлы в отличие от текстовых хранят информацию не в символьном, а в цифровом, строковом, массивном, компонентном виде, т.е. в том виде, как она хранится в памяти компьютера.

Нетипизированные файлы могут содержать разнородные данные. Также как и типизированные они хранят данные в машинном представлении. Но, если в типизированных файлах заранее определен тип хранения данных, то в нетипизированных хранится произвольный набор байт данных произвольной структуры.

Для всех типов файлов минимальной единицей хранения данных в них является байт

Общие принципы работы с файлами едины, хотя и имеются различия в использовании некоторых процедур.