Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
великая сборная(телефон).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
395.26 Кб
Скачать

Билет 19

1. Работа с записями и файлами. Текстовые файлы. Файлы с типом.

Запись (record), называемая в некоторых языках структурой, представляет собой объединенный общим именем набор данных различных типов. Отдельные данные записи называются полями. Все это напоминает запись в базе данных, только хранящуюся в оперативной памяти компьютера. Тип записи объявляется следующим образом:

type

<имя типа> •= record

<список имен полей> : <тип>;

<список имен полей> : <тип>;

end,-

Например:

type

TPers= record

Fam, Name, Par : String [15] ;

Year : Integer;

Sex : boolean;

Dep : string[10J

end;

Эти операторы объявляют тип записи TPers, содержащей сведения о сотруднике некоторой организации: его фамилию, имя, отчество (поля Fam, Name, Par), год рождения (поле Year), пол (поле Sex), отдел, в котором он работает (поле Dep). Область видимости идентификаторов полей только внутри записи. Когда определен тип записи, можно определить переменные этого типа. Например:

var Pers, Persl : TPers;

Доступ к отдельным полям записи осуществляется указанием на соответствующую переменную типа записи и после символа точки «.» – имя поля. Например:

Pers.Fam := 'Иванов';

Pers.Nam := 'Иван';

Pers.Par :- 'Иванович';

Pers.Year := 1960;

Pers.Sex := true;

Pers.Dep :='Цех 1';

При групповых операциях с полями удобно использовать оператор with..do.

Файлы представляют собой множество упорядоченных элементов одного типа. Для доступа к файлам используется специальная файловая переменная. Она связывается с указанным файлом процедурой AssignFile. Эта процедура имеет синтаксис:

procedure AssignFile(var F: File, S: string);

где F – файловая переменная любого типа, S – строка, содержащая имя файла.

Например, оператор AssignFile (F1, 'Test.txt') связывает файловую переменную F1 с файлом «Test.txt».

Открытие существующего файла осуществляется процедурой Reset, формат которой следующий: procedure Reset(var F: File); Файловая переменная F перед обращением к этой процедуре должна быть связана с файлом.

Создание и открытие нового файла осуществляется процедурой Rewrite, формат которой следующий: procedure Rewrite(var F: File);

После выполнения различных операций чтения и записи файл должен быть закрыт процедурой CloseFile: procedure CloseFile(var F: File);

Текстовые файлы состоят из последовательностей символов, разбитых на строки. В Object Pascal предопределен тип TextFile, соответствующий текстовому файлу. Таким образом, объявление файловой переменной может иметь вид:

var <Имя файловой переменной>: TextFile;

Запись данных в текстовый файл осуществляется процедурой

procedure Write(var F: TextFile; <список выражений>);

Чтение данных из текстового файла осуществляется последовательно от его начала процедурой procedure Read(var F: TextFile; <список переменных>);, где в списке перечисляются переменные, в которые читаются данные из файла.

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

Типизированные файлы являются двоичными файлами, содержащими последовательность однотипных данных. Объявление файловых переменных таких файлов имеет вид: var <имя файловой переменной;»: file of <тип данных>; Например: var Fi file of real; Тип данных может быть не только простым типом, но и, например, типом записей.

Процедуры чтения и записи Read и Write не отличаются от рассмотренных ранее для текстовых файлов. Только типы выражений при записи и переменных при чтении должны соответствовать объявленному типу данных файла.