STATUS (состояние принтера/файла/диска/клавиатуры)
STATUS(| принтер |)
| диск |
| файл |
|клавиатура|
принтер | Строковая константа или переменная, содержащая допостимое в ДОС название принтерного порта: LPT1, LPT2 или LPT3. |
диск | Строковая константа или переменная, содержащая допустимое в ДОС имя диска: A:, B:, C:, . . ., Z:. |
файл | Метка оператора FILE. |
клавиатура | Строковая константа или переменная, содержащая имя устройства: CON. |
Функция STATUS возвращает текущее состояние принтера, диска, файла или клавиатуры.
STATUS(принтер) | Возвращает 0, если принтер не готов и 1, если с принтером все в порядке. |
STATUS(диск) | Возвращает 0, если диск не готов или свободное место на диске в байтах, если диск в порядке. |
STATUS(файл) | Возвращает 0, если файл не открыт и режим доступа к файлу, если он открыт. Если текущий режим доступа - 0 (только для чтения, любой доступ), то возвращается код 40h (Read Only Deny None) (см. ). |
STATUS(клавиатура) | Возвращает флаг состояния клавиатуры. Этот флаг рассматривается в виде совокупности битов в длинном целом. Значения битов приведены ниже (** означает, что бит установлен только пока клавиша нажата): x....... ........ Ins ** .x...... ........ Caps Lock ** ..x..... ........ Num Lock ** ...x.... ........ Scroll Lock ** ....x... ........ Режим паузы (Ctrl-Num Lock или Pause) ** .....x.. ........ Sys Req ** ......x. ........ Left Alt ** .......x ........ Left Ctrl ** ........ x....... Режим вставки ........ .x...... Caps Lock ........ ..x..... Num Lock ........ ...x.... Scroll Lock ........ ....x... Alt ** ........ .....x.. Ctrl ** ........ ......x. Left Shift ** ........ .......x Right Shift ** |
Возвращаемый тип данных: LONG
Пример:
IF STATUS(DataFile) % 16 = 0 !Файл открыт только для чтения?
RETURN ! ну тогда отваливаем
ELSE !В противном случае
EXECUTE DiskAction ! пишем запись на диск
ADD(DataFile)
PUT(DataFile)
DELETE(DataFile)
. .
LOOP
IF STATUS('A:') = 0 !Проверяем состояние диска А:
SHOW(1,1,'Вставьте, пожалуйста, диск в дисковод A:')
BEEP
ASK
ELSE
BREAK
. .
LOOP
IF STATUS('LPT1') = 0 !Проверка состояния принтера
SHOW(1,1,'Проверьте, пожалуйста, принтер.')
BEEP
ASK
ELSE
BREAK
. .
LOOP
IF BAND(STATUS('CON'),00100000b) !Проверяем Num Lock
SHOW(1,1,'Выключите, пожалуйста, Num Lock')
BEEP
ASK
ELSE
BREAK
. .
См. также: