15.4.8. Переназначение стандартных файлов
Процедура 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 -