Процедура 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 -

<p>Глава 16. Модуль DOS</p>

В системном модуле DOS, имеющем размер около 6K, реализовано большое число процедур и функций, ориентированных на работу со средой MS-DOS и использующих ее возможности. Все они отсутствуют в стандартном Паскале. Заметим, что системная библиотека Турбо Паскаля реализует много функций, специфичных для MS-DOS (например, ChDir, ParamStr и т.п.), которые, однако, оставлены в основной библиотеке, а не вынесены в модуль DOS. Но это все функции более высокого уровня, а те, которые предоставляет модуль DOS, являются инструментом доступа к «низкоуровневым» операциям MS-DOS.

Многие из реализуемых DOS процедур или функций — это просто оформленные в синтаксисе языка Паскаль вызовы функций MS-DOS. Таковы, например, почти все средства работы с файлами.

Модуль DOS при его подключении вводит большое количество констант и предопределенных типов. Их смысл до конца может быть понятен лишь опытному системному программисту. Мы же не стремимся превратить изложение Турбо Паскаля в книгу по MS-DOS и просто постараемся показать, как их можно использовать в прикладных программах.

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

— опрос и установка параметров (ключей) MS-DOS;

— работа с часами и календарем ПЭВМ;

— анализ ресурсов дисков;

— работа с каталогами и файлами;

— работа с прерываниями MS-DOS;

— организация субпроцессов и резидентных программ.

Отметим, что в отличие от модуля CRT подключение модуля DOS без использования его программ не дает видимого эффекта (хотя и привносит предопределенные типы, переменные и константы).

- 346 -

<p>16.1. Опрос и установка параметров MS-DOS</p>

Команды опроса и установки параметров реализованы процедурами и функциями, приведенными в табл. 16.1.

Перейти на страницу:

Поиск

Похожие книги