Песни о Паскале | страница 137



Встроенные процедуры и функции

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

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

Напоследок напомню об основных средствах обработки текстовых файлов.

Для чтения из файлов применяют следующие процедуры и функции:


>Assign(F, ...) - Связать файловую переменную с файлом

>Reset(F) - Открыть файл для чтения

>Read(F, ...) - Прочитать часть строки файла

>Readln(F, ...) - Прочитать строку файла и перейти к следующей

>Eoln(F) - Проверить на конец строки

>Eof(F) - Проверить на конец файла

>Close(F) - Закрыть файл


Для записи в файл применяют такие процедуры:


>Assign(F, ...) - Связать файловую переменную с файлом

>Rewrite(F) - Открыть файл для записи

>Write(F, ...) - Записать часть строки файла

>Writeln(F, ...) - Записать строку файла и перейти к следующей

>Close(F) - Закрыть файл


Чтобы связать текстовый файл с клавиатурой (при вводе) или с экраном (при выводе), можно прибегнуть к двум приёмам. Первый состоит в том, чтобы назначить файлу пустое имя.


>var F_In, F_Out : Text;

>begin

> Assign(F_In,’’); Reset(F); { F_In связали с клавиатурой }

> Assign(F_Out,’’); Rewrite(F); { F_Out связали с экраном }

> . . .

>end.


Второй приём заключается в применении специального имени "CON" — от слова Console (оно предусмотрено в MS-DOS и Windows).


> Assign(F_In,’Con’); Reset(F); { F_In связали с клавиатурой }

> Assign(F_Out,’Con’); Rewrite(F); { F_Out связали с экраном }


В операционных системах MS-DOS и Windows существует несколько специальных имен файлов, вот некоторые из них:


>AUX - Первый асинхронный коммуникационный порт

>CON - Клавиатура и экран (CONsole)

>NUL - Фиктивное устройство (для тестирования)

>PRN - Первый параллельный принтер


Аналогичные имена применяют и в UNIX-подобных системах.

Наконец, для действий с текстовыми файлами можно применять две встроенные в язык файловые переменные: INPUT и OUTPUT. Они не нуждаются ни в объявлении, ни в открытии, ни в закрытии файлов:


> Readln(Input, S); { - то же самое, что Readln(S) }

> Writeln(Output, S); { - то же самое, что Writeln(S) }


Файловые переменные INPUT и OUTPUT можно передавать в качестве фактических параметров внутрь процедур и функций, а также связывать их с дисковыми файлами. Вот пример копирования файла из «MyText.in» в «MyText.out»: