Иллюстрированный самоучитель по Tirbo Pascal



              

Запуск внешних программ - часть 2


{$М 2048, 0, 0}

Такая директива ограничивает используемую программой область стека величиной 2 Кбайта и исключает возможность использования в ней динамической памяти. Разумеется, Вы можете установить и другие значения параметров в этой директиве.

Специфические особенности исполнения программ Турбо Паскаля требуют изменения стандартных значений некоторых векторов прерываний. К ним относятся векторы со следующими шестнадцатеричными номерами:

$00, $02, $18, $23, $24, $34, $35, $36, $37, 

$38, $39, $ЗА, $ЗВ, $ЗС, $3D, $3E, $3F, $75.

Начальные значения этих векторов сохраняются в восемнадцати переменных с именами SA VEINTXX из библиотечного модуля SYSTEM, где XX - шестнадцатеричный номер прерывания. Поэтому непосредственно перед запуском внешней программы и сразу после возврата из нее рекомендуется вызывать библиотечную процедуру без параметров SWAPVECTORS, которая обменивает содержимое векторов прерывания и перечисленных переменных.

Программа из примера 11.4 читает с клавиатуры любую команду ДОС, затем вызывает командный процессор COMMAND. COM операционной системы и передает ему эту команду.

Обратите внимание: для указания файла COMMAND.COM и пути к нему используется обращение к библиотечной функции GETENV, с помощью которой можно получить параметры настройки операционной системы. В частности, параметр COMSPEC определяет спецификацию файла, содержащего командный процессор.

Пример 11.4 

{$М 1024, 0, 0} 

Uses DOS; 

var

st : string [79]; 

begin

write ('Введите команду ДОС: '); 

readln (st); if st <> '' then 

begin

st := '/C '+st; 

SwapVectors;

Exec (GetEnv ('COMSPEC'), st) ; 

SwapVectors 

end 

end.

Функция ENVCOUNT.

Возвращает значение типа INTEGER, в котором содержится общее количество установленных в ДОС параметров. Обращение:

ENVCOUNT

Функция ENVSTR.

Возвращает значение типа STRING, содержащее имя и значение нужного параметра настройки операционной системы. Формат обращения:

ENVSTR (<D>)

Здесь <D> - выражение типа INTEGER; номер параметра.

Эта функция возвращает строку типа NAME-VALUE, где NAME - имя, a VALUE -значение соответствующего параметра настройки.

Функция GETENV.

Возвращает значение типа STRING, в котором содержится параметр настройки ДОС. Формат обращения:

GETENV (<имя>)

Здесь <имя> - выражение типа STRING; имя параметра.

Эта функция имеет параметр обращения NAME, а возвращает значение VALUE (см. функцию ENVSTR).




Содержание  Назад  Вперед