15.4.8. Переназначение стандартных файлов

We use cookies. Read the Privacy and Cookie Policy

Процедура AssignCRT(VAR f : Text) перенаправляет вывод на фиктивное устройство CRT. Устройство CRT активизируется при подключении модуля CRT директивой USES. Оно начинает выполнять функции ввода-вывода средствами библиотеки Турбо Паскаля взамен стандартных процедур MS-DOS. Подробно об этом писалось

- 344 -

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

Рассмотрим каркас программы (рис. 15.17), перенаправляющей файлы.

| USES CRT; { используется модуль CRT } VAR

| f : Text; { текстовый логический файл }

| BEGIN

| Assign( f, 'LPT2' ); { файл f связан с принтером }

| Rewrite( f ); { файл f открыт для вывода }

| WriteLn( f, ...); { вывод данных на печать }

| Close( f ); { файл f (LPT2) закрыт }

| AssignCRT( f ); { Файл f связан с устройством CRT }

| { и использует его механизмы быстрого вывода. }

| Rewrite( f ); { файл f открыт для вывода }

| WriteLn( f, ...}; { быстрый вывод на монитор }

| Close( f ); { файл все равно надо закрыть }

| END.

Рис. 15.17

Отметим, что никаким другим способом нельзя связать объявленный в программе файл с фиктивным устройством CRT. Наивные попытки использовать для этого процедуру Assign, типа

Assign( f, 'CRT' ); Rewrite( f );

организуют на диске файл с именем 'crt' (случай Rewrite ((f)) или вообще дадут ошибку (случай Reset (f), если файла 'crt' не существует).

При использовании вывода в устройство CRT уже нельзя будет организовать перенаправление потоков ввода-вывода при запуске откомпилированной программы в MS-DOS из командной строки. Но перенаправление станет возможным, если связать файлы в программе со стандартным устройством MS-DOS.

- 345 -