Процедуры и функции

Дейстувие

DOSVersion : Word

Возвращает закодированный номер текущей версии MS-DOS

GetCBreak(VAR B: Boolean)

SetCBreak(B: Boolean)

Считывает значение параметра BREAK

Устанавливает значение BREAK

GetVerify(VAR V : Boolean)

SetVerify(V : Boolean)

Считывает значение параметра VERIFY

Устанавливает значение VERIFY

EnvCount : Integer

EnvString( N : Integer): String

GetEnv(E : String) : String

Возвращает число системных переменных MS-DOS

Возвращает полную строку задания переменной MS-DOS номер N

Возвращает значение системной переменной Е

Все эти функции несложны в употреблении, кроме, быть может, DOSVersion, которая возвращает закодированный номер версии. Чтобы извлечь из нее привычную форму нумерации, можно воспользоваться функцией, предлагаемой на рис. 16.1.

| USES DOS;

| FUNCTION XDOSVersion : String;

| VAR

|   V : Real;

|   S : String;

| BEGIN

|   V := Lo(DosVersion) + Hi(DosVersion) / 100;

|   Str(V:4:2, S);

|   XDOSVersion := S

| END;

- 347 -

<p>16.1.1. Управление параметрами BREAK и VERIFY</p>

16.1.1.1. Процедуры GetCBreak( VAR В : Boolean) и SetCBreak( В : Boolean ). Пара процедур GetCBreak/SetCBreak работает с системным параметром MS-DOS BREAK. Его значение обычно устанавливается в файлах CONFIG.SYS или AUTOEXEC.BAT. Если значение BREAK равно ON, то вызов процедуры GetCBreak( В ) запишет в логическую переменную B значение True; если BREAK равно OFF, то — False. Процедура SetCBreak(B) устанавливает значение BREAK равным ON, если B равно True, и OFF в противном случае.

Параметр MS-DOS BREAK контролирует возможность прерывания программ при их выполнении нажатием комбинации клавиш Ctrl+Break. Если BREAK равно ON, то возможно прерывание программы во время любых обращений ее к функциям MS-DOS, если же BREAK равно OFF, то прерывание сработает только в моменты операций ввода-вывода (при подключенном модуле CRT этот процесс, в свою очередь, контролируется переменной модуля CRT CheckBreak).

Отключение возможности прерывания делает программы более «закрытыми» и немного более быстрыми.

Эффект от установки значений BREAK может проявиться только при запуске ЕХЕ-файла вне среды Турбо. При работе в среде прерывания управляются самой средой.

16.1.1.2. Процедуры GetVerify(VAR В : Boolean) и SetVerify(B : Boolean ). Процедуры управления режимом записи на диск GetVerify и SetVerify работают так же, как пара GetCBreak/SetCBreak, с той лишь разницей, что они общаются с системным параметром MS-DOS VERIFY. Он определяет режим записи на диск: с проверкой идентичности записанных и исходных данных (значение VERIFY равно ON, а параметра в GetVerify /SetVerify — True) или без нее (значения равны OFF и False соответственно).

Режим записи с проверкой гарантирует правильность записи информации на диск, но существенно замедляет сам процесс записи.

<p>16.1.2. Опрос системных переменных MS-DOS</p>

Средства работы с системными переменными MS-DOS реализованы в модуле DOS функциями EnvCount, EnvStr и GetEnv. Системные переменные (не путать с параметрами!) MS-DOS — это их имена и значения, заданные пользователем командой SET (как правило, в файле AUTOEXEC.BAT) и командами PATH и PROMPT.

- 348 -

Задавая системную переменную, всегда надо писать ее имя и значение (может быть пустым), например:

| .ВАТ-ФАЙЛ

| PROMPT $p$g

| SET LIB=C:\BIN\LIB

| SET COMSPEC=E:\COMMAND.COM

Работая в MS-DOS, можно подать команду SET без параметров и увидеть текущие системные переменные и их значения. Причем, даже если не было подано ни одной команды «SET имя = значение» до этого, будут определены две системные переменные: PATH и COMSPEC. Они вводятся автоматически при загрузке системы. Параметр PROMPT должен быть задан явно. Остальные переменные «придумываются» самим пользователем.

Функция EnvCount типа Integer возвращает число определенных в MS-DOS переменных, а функция EnvStr возвращает строку в виде «имя = значение». С их помощью легко построить процедуру, аналогичную по действию команде SET без параметров в MS-DOS (рис. 16.2):

| USES DOS;

| PROCEDURE ShowSET; { показ системных переменных }

| VAR i,j : Integer;

| BEGIN

| i := EnvCount; { число переменных }

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

Поиск

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