Коллективный доступ к полям записи.
Обращение к полям записи имеет несколько громоздкий вид, что особенно неудобно при использовании идентификаторов длиной более 5 символов. Для решения этой проблемы в языке Паскаль предназначен оператор with, который имеет следующий формат:
with <переменная типа запись> do <оператор>;
Один раз указав переменную типа запись в операторе with, можно работать с именами полей как с обычными переменными, т.е без указания перед идентификатором поля имени переменной, определяющей запись.
Пример. Присвоить значения полям записи Klient с помощью оператора with.
With M do
begin
Number :=43;
Marka :=’Запорожец’;
FIO := ‘Ильин М.И.';
Adres :=’ул. Болтунов, 5'
end;
Паскаль допускает вложение записей друг в друга (т.е. поле в записи может быть в свою очередь тоже записью), соответственно оператор with тоже может быть вложенным:
With V1 do
With V2 do
with V3 do ..
что эквивалентно записи with V1,V2,V3 do.
Уровень вложения не должен превышать 9.
Записи используются обычно при работе с динамическими структурами и для организации файлов на магнитных дисках.Записи могут служить также для описания комплексных чисел,так как в языке Паскаль нет для этого специальных средств. В этом случае действительная и мнимая части комплексного числа являются полями записи:
Type Complex = record
Deistv : real; { действительная часть }
Mnim :real; { мнимая часть}
end;
Var
A, В, С : Complex; { A,B,C - переменные типа Complex } Begin
A.Deistv := 6.3;
A.Mnim := 1.9;
end;
Ввод и вывод. Нетекстовые файлы. Типизированные файлы.
Ввод и вывод информации.
Операции ввода-вывода играют большую роль в любой программе, так как их реализация позволяет пользователю получать результаты вычислительного процесса в удобном для него виде.
В Паскале существуют три класса файлов: типизированные, текстовые и нетипизированные. Файловая система на Паскале наиболее полно использует возможности операционной системы DOS по передаче данных.
1. Объявление файла – Assign.
Каждому файлу в языке ставится в соответствие файловая переменная определенного типа, поэтому перед началом работы с файлом необходимо установить данное соответствие. Для этого в языке используется процедура
Assign(f, Name : string); {Для Pascal}
AssignFile(f, Name : string); {Для Delphi}
где f - переменная любого файлового типа, а строковое выражение Name содержит полное имя файла, удовлетворяющее требованиям операционной системы Обобщенный вид имени файла выглядит следующим образом:
Диск:\ИмяПодКаталога\. \ИмяПодКаталога\ИмяФайла.
Идентификатор <диск> задается литерой логического устройства от А до Z, и если он опущен, то подразумевается логическое устройство, принятое по умолчанию. Если опущены идентификаторы <ИмяПодКаталога>, то по умолчанию принимается, что файл находится в текущем подкаталоге. Максимальная длина полного имени файла не должна превышать 79 символов.
Процедура Assign всегда предшествует другим процедурам работы с файлами, так как ставит в соответствие конкретному файлу на внешнем устройстве логическую файловую переменную языка, к которой впоследствии будут обращаться все другие файловые процедуры Недопустимо использование процедуры Assign для уже открытого файла. Это значит, что если было назначено имя конкретного набора данных файловой переменной с помощью процедуры Assign, а затем этot файл был открыт, то прежде, чем использовать ту же файловую переменную для нового набора данных, необходимо с помощью процедуры Close(см.далее) закрыть этот файл.
Удобство использования процедуры Assign (AssignFile) при работе с внешними файлами не ограничивается только дисковыми файлами. Вместо дискового файла может выступать любое устройство ввода-вывода: клавиатура, печать либо дисплей. Единственное отличие от приведенного выше описания будет заключаться в использовании параметра Name. В данном случае параметр Name будет содержать символическое имя устройства ввода-вывода, соответствующее стандартным соглашениям операционной системы Следующие символические имена доступны для использования их стандартными файловыми процедурами:
con - устройство консоли, для которого вывод осуществляется на экран дисплея, а ввод с клавиатуры. В этом случае Delphi-приложение должно создаваться как Console Application. Стандартные текстовые файлы Input и Output, приведенные в спецификации Interface модуля System, при инициализации по умолчанию устанавливаются на устройство CON, что соответствует строкам: