Когда дисплей установлен в
| Числ. Значение | Цветовой атрибут | Символ или фон? |
|---|---|---|
| 0 | Чёрный | Символ |
| 1 | Синий | Символ |
| 2 | Зелёный | Символ |
| 3 | Циан (голубой) | Символ |
| 4 | Красный | Символ |
| 5 | Пурпурный | Символ |
| 6 | Коричневый | Символ |
| 7 | Светло-серый | Символ |
| 8 | Тёмно-серый | Символ |
| 9 | Светло-синий | Символ |
| 10 | Светло-зелёный | Символ |
| 11 | Светло-голубой | Символ |
| 12 | Светло-красный | Символ |
| 13 | Светло-пурпурный | Символ |
| 14 | Жёлтый | Символ |
| 15 | Белый | Символ |
| 0 | Чёрный | Фон |
| 16 | Синий | Фон |
| 32 | Зелёный | Фон |
| 48 | Циан (голубой) | Фон |
| 64 | Красный | Фон |
| 80 | Пурпурный | Фон |
| 96 | Коричневый | Фон |
| 112 | Светло-серый | Фон |
| 128 | Мигание | Символ |
| Примечание: Атрибут = Символ+Фон (+ Мигание) | ||
Младшие четыре бита байта атрибутов устанавливают цвет самого символа (бит 3 включает высокую интенсивность цвета). Следующие три бита устанавливают фон символа, и при обычных обстоятельствах старший бит включает и выключает мигание. Образование шестнадцати цветов из 4-х бит проиллюстрировано в таблице 4.2.
| Сопоставление кодов цветов экрана в 16-ти цветной палитре | ||||
|---|---|---|---|---|
| Канал | Интенсивность | |||
| Красный | Зелёный | Синий | Низкая (0) | Высокая (1) |
| 0 | 0 | 0 | Чёрный (0) | Серый (8) |
| 0 | 0 | 1 | Синий (1) | Светло-синий (9) |
| 0 | 1 | 0 | Зелёный (2) | Светло-зелёный (10) |
| 0 | 1 | 1 | Циан (3) | Светлый циан (11) |
| 1 | 0 | 0 | Красный (4) | Ярко-красный (12) |
| 1 | 0 | 1 | Магента (5) | Светлая магента (13) |
| 1 | 1 | 0 | Коричневый (6) | Жёлтый (14) |
| 1 | 1 | 1 | Белый (7) | Ярко-белый (15) |
Прерывания DOS и BIOS предоставляют очень скудные возможности для работы с цветным текстом. Только функция 9 прерывания 10H принимает байт атрибутов при выводе символа. Функция 0AH прерывания 10H выводит символ без указания цвета - он принимается равным цвету по-умолчанию. Функция 0DH прерывания также оставляет нетронутым байт атрибутов.
Функция вывода на экран DOS прерывания 21H всегда выводит белые символы на чёрном фоне. Единственный способ обойти это ограничение - использовать
Приведём примеры на языке ассемблера вывода сначала обычной строки (белым по чёрному), а затем надпись: "Внимание!" жёлтым цветом на красном фоне.
Пример 4.1.
; --- в сегменте данных STRING_01 DB 'Я хочу обратить Ваше',0AH,0DH,'$' STRING_02 DB 'Внимание!$' NORM_COLOR DB 27, '[0m$' ATTENT_COLOR DB 27, '[1;33;41m$' CLEAR_COLOR DB 27, '[0m$' ; --- в сегменте кода ; --- вывод строк MOV AH, 9 ; функция вывода страницы LEA DX, NORM_COLOR ; Обычный цвет INT 21H LEA DX, STRING_01 ; Первая строка INT 21H LEA DX, ATTENT_COLOR ; Выделение цветом INT 21H LEA DX, STRING_02 ; Вторая строка INT 21H LEA DX, CLEAR_COLOR ; Сброс атрибутов текста INT 21H
Смотри Листинг программы ex04001.
В стандарте на язык Си (ANSI C) нет функций для работы с цветом. Вместо этого рекомендуется использовать escape - последовательности, при условии, что у Вас в системе установлен драйвер ANSI.SYS
В этом случае пример 4.1. запишется следующим образом:
Пример 4.2.
/* ex04002.c */
/* Вставка заголовочных файлов */
#include <stdio.h>
#include <conio.h>
/* описание констант */
const char NORM_COLOR[] = "\x1b[0m"; //Нормальный режим
const char ATTENT_COLOR[] = "\x1b[1;33;41m"; // Выделение цветом
/* Основная программа */
void main( void )
{
/* Определение временной переменной */
char cJunk;
/* Вывод строк */
puts( NORM_COLOR );
puts( "\nЯ хочу обратить Ваше" );
puts( ATTENT_COLOR );
puts( "Внимание!\x1b[0m" );
/* Завершение работы программы */
cputs( "Press key Enter to exit...\r\n" );
cJunk = getche();
}
/* Конец программы */
Ниже рассмотрены некоторые функции для "цветного" вывода средствами Turbo C++ и SPHINX C--.
| ФУНКЦИЯ | TEXTATTR |
| ОПИСАНА В: | <conio.h> (содержит только прототип); |
| СИНТАКСИС: | void textattr( newattr ); int newattr; |
| НАЗНАЧЕНИЕ: | Устанавливает текстовые атрибуты; |
| ОПИСАНИЕ: | textattr позволяет устанавливать цвет фона и цвет символов одновременно за один вызов. (Обычно вы устанавливаете атрибуты с помощью textcolor и textbackground );Эта функция не относится к символам, находящимся в текущий момент на экране; она относится только к тому, что отображается функциями (такими как |
Информация цвета кодируется в параметре newattr следующим образом (смотри рисунок 4.1):
(рис 4.1) Расшифровка байта атрибута символа при консольном выводеВ этом 8-битном параметре newattr:
ffff - 4-битный цвет символов (1 - 15)bbb - 3-битный цвет фона (1 - 7)B - бит мигания.Если бит мигания включён, то символ будет мигать. Это можно осуществить путём добавления константы в атрибут. Если вы используете символьные цветовые константы, определённые в conio.h для создания текстовых атрибутов с помощью textattr, запомните следующие ограничения на цвет фона:
| Константы для атрибутов текста, определённые в <conio.h> | |||
|---|---|---|---|
| Константа | Перевод | Числ. Значение | Для символов или фона? |
| BLACK | Чёрный | 0 | оба |
| BLUE | Синий | 1 | оба |
| GREEN | Зелёный | 2 | оба |
| CYAN | Циан (голубой) | 3 | оба |
| RED | Красный | 4 | оба |
| MAGENTA | Пурпурный | 5 | оба |
| BROWN | Коричневый | 6 | оба |
| LIGHTGRAY | Светло-серый | 7 | оба |
| DARKGRAY | Тёмно-серый | 8 | для символов |
| LIGHTBLUE | Светло-синий | 9 | для символов |
| LIGHTGREEN | Светло-зелёный | 10 | для символов |
| LIGHTCYAN | Светло-голубой | 11 | для символов |
| LIGHTRED | Светло-красный | 12 | для символов |
| LIGHTMAGENTA | Светло-пурпурный | 13 | для символов |
| YELLOW | Жёлтый | 14 | для символов |
| WHITE | Белый | 15 | для символов |
| Мигание | 128 | для символов | |
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
| ПЕРЕНОСИМОСТЬ: | textattr работает только на IBM PC и совместимых системах; |
| ФУНКЦИЯ | TEXTCOLOR |
| ОПИСАНА В: | <conio.h> (содержится прототип функции); |
| СИНТАКСИС: | void textcolor( newcolor); int newcolor; |
| НАЗНАЧЕНИЕ: | Устанавливает цвет символов в текстовом режиме; |
| ОПИСАНИЕ: | textcolor выбирает цвет символа. Эта функция оказывает влияние на функции, производящие прямой вывод на экран в текстовом режиме. Вы можете выбрать цвет, используя символьную константу, определённую в conio.h. Если вы используете эту константу, вы должны включить файл conio.h ; |
Эта функция не относится к символам, находящимся в текущий момент на экране; она относится только к тем символам, которые выводятся функциями (такими как cprintf ) в текстовом режиме, осуществлявшим вывод на дисплей после вызова textcolor.
Следующая таблица отображает возможные цвета (как
| Константы для атрибутов текста, определённые в <conio.h> | ||
|---|---|---|
| Константа | Перевод | Числ.знач. |
| BLACK | Чёрный | 0 |
| BLUE | Синий | 1 |
| GREEN | Зелёный | 2 |
| CYAN | Циан (голубой) | 3 |
| RED | Красный | 4 |
| MAGENTA | Пурпурный | 5 |
| BROWN | Коричневый | 6 |
| LIGHTGRAY | Светло-серый | 7 |
| DARKGRAY | Тёмно-серый | 8 |
| LIGHTBLUE | Светло-синий | 9 |
| LIGHTGREEN | Светло-зелёный | 10 |
| LIGHTCYAN | Светло-голубой | 11 |
| LIGHTRED | Светло-красный | 12 |
| LIGHTMAGENTA | Светло-пурпурный | 13 |
| YELLOW | Жёлтый | 14 |
| WHITE | Белый | 15 |
| Мигание | 128 | |
Вы можете сделать символы мигающими, добавляя к цвету символов. Встроенная константа предназначена для этой цели. Например:
textcolor(CYAN+BLINK);
Замечание. Некоторые мониторы не определяют интенсивность сигнала, используемую для создания восьми "light" (светлый) цветов (8-15). На таких мониторах светлые цвета будут изображаться как их "тёмные" эквиваленты (0-7). Аналогично, системы, которые не отображают цвет, используют эти номера как оттенки одного цвета, особые образцы или особые атрибуты (такие как подчёркивание, полужирный шрифт, курсив и т.п.). То, что вы увидите при этом на экране, зависит от оборудования.
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
| ПЕРЕНОСИМОСТЬ: | Только на IBM PC и совместимых компьютерах. Соответствующая функция существует в Turbo Pascal; |
| ФУНКЦИЯ | TEXTBACKGROUND |
| ОПИСАНА В: | <conio.h> (содержит прототип); |
| СИНТАКСИС: | void textbackground( newcolor); int newcolor; |
| НАЗНАЧЕНИЕ | Выбирает новый цвет фона для текста; |
| ОПИСАНИЕ: | textbackground выбирает цвет фона в текстовом режиме. Эта функция работает только для функций, осуществляющих примой вывод на экран в текстовом режиме. newcolor определяет новый цвет фона. Вы можете определить его как целое (от 0 до 7) или как одну из |
Эта функция не относится к символам, находящимся в текущий момент на экране; она относится только к тем символам, которые выводятся функциями (такими как cprintf ) в текстовом режиме, осуществлявшим вывод на экран после вызова этой функции.
| Константы для атрибутов текста, определённые в <conio.h> | ||
|---|---|---|
| Константа | Перевод | Числ.знач. |
| BLACK | Чёрный | 0 |
| BLUE | Синий | 1 |
| GREEN | Зелёный | 2 |
| CYAN | Циан (голубой) | 3 |
| RED | Красный | 4 |
| MAGENTA | Пурпурный | 5 |
| BROWN | Коричневый | 6 |
| LIGHTGRAY | Светло-серый | 7 |
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
| ПЕРЕНОСИМОСТЬ: | Только с IBM PC и совместимыми компьютерами. Соответствующая функция существует в Turbo Pascal; |
Пример 4.3.
Использование функций управления атрибутами символов textcolor и textbackground.
/* ex04003.c */
/* Работает только в системе Borland C/C++ 3.10 */
/* Вставка заголовочных файлов */
#include <conio.h>
/* Основная программа */
void main( void )
{
/* Определение временной переменной */
char cJunk;
/* Вывод строк */
textcolor( LIGHTGRAY); textbackground( BLACK );
cputs( "\r\nЯ хочу обратить Ваше\r\n" );
textcolor( YELLOW); textbackground( RED );
cputs( "Внимание!" );
textcolor( LIGHTGRAY); textbackground( BLACK );
/* Завершение работы программы */
cputs( "\r\n\r\nPress key Enter to exit...\r\n" );
cJunk = getche();
}
/* Конец программы */
В be, с помощью которой можно менять цвет выводимых символов и их фон. Её синтаксис следующий:
be "команда" "опции и параметры"
а также
be "имя batch-файла".dat
Все команды и опции команды be приведены в приложении №1 (пункт 4.4 данной лекции). Здесь же приведём пример batch файла, реализующий пример 4.3.:
Пример 4.4. Файл ex04005.dat
cls white on black rowcol 1, 1 "Я хочу обратить Ваше" rowcol 2, 1 "Внимание!" bright yellow on red
Примечание: Этот файл запускается из командной строки командой:
Пример 4.5
be ex04005.dat
Вывод текста с "нестандартными" атрибутами на языках Perl и Python не возможен.
Вывод текста с атрибутами цвета на языке ПРОЛОГ осуществляется с использованием предиката attribute, который может читать и устанавливать текстовый атрибут;
Приведём синтаксис предиката attribute
| ФУНКЦИЯ: | attribute |
| СИНТАКСИС: | attribute(Attr), где Attr - атрибут символа (целое число); |
| НАЗНАЧЕНИЕ: | Устанавливает или выдаёт текущий атрибут символа; |
| ОПИСАНИЕ: | attribute устанавливает или считывает текущий атрибут вывода. Вывод при помощи write или writef даёт отображение экрана с этим атрибутом. Каждое окно имеет свой атрибут вывода. Когда вы создаёте окно, атрибут вывода автоматически принимает значение атрибута окна, но вы можете изменить его предикатом attribute ; |
| ШАБЛОНЫ: | (i) (o) ; |
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Всегда успех; |
| ОШИБКИ: | Никогда не даёт; |
Пример 4.3, записанный на языке ПРОЛОГ, будет выглядеть следующим образом:
Пример 4.6.
/* Файл ex04006.pro */ domains /* Описываем переменные */ CNorm_color= char predicates attent norm_color clauses /* Определяем правила */ norm_color :- attribute( '\07' ). attent :- attribute( '\78' ), nl, write( "Внимание!" ). goal /* Вывод нормального текста */ norm_color, nl, write( "Я хочу обратить Ваше" ),nl, /* Вывод текста с изменёнными атрибутами */ attent, /* Возвращение нормальных атрибутов */ norm_color, nl, /* Вывод завершающей надписи */ write( "Press key Enter to exit..." ), readchar( _ ). /* Конец программы */
Как Вы, наверное, уже уяснили то, что основным способом манипуляции положением позиции курсора, сменой атрибутов текста при выводе на экран является использование так называемых
Для поддержки escape- последовательностей в операционных системах MS-DOS, DEVICE или DEVICEHIGH. В остальных операционных системах поддержка расширений ANSI включена по-умолчанию (в реестре и файлах конфигурации). Если escape- последовательности всё же не работают, смотрите настройки Вашего компьютера (в файлах конфигурации и в реестре).
После прочтения последних трёх лекций Вы уяснили, каким образом символьные данные выводятся на дисплей с использованием "функций среднего уровня". Материал может показаться Вам не актуальным - ведь Вы уже привыкли работать в "
Кроме того, Вы ознакомились с принципиально важными функциями для вывода текста на экран, имеющие при консольном выводе не меньшее значение, чем функции манипулирования контекстом Windows, о котором речь пойдёт в последующих лекциях.
В данном разделе даётся описание функции работы с командными файлами при помощи приложения Norton Utilities 8.0 BE.
BE ASK |
Ожидание нажатия заданной клавиши |
| СИНТАКСИС: | BE ASK "приглашение" [список-клавиш][DEFAULT=клавиша][TIMEOUT=n][ADJUST=n][цвет][/DEBUG] |
| НАЗНАЧЕНИЕ: | Запрашивает ввод с клавиатуры и устанавливает код переменной DOS ERRORLEVEL |
| ПОЯСНЕНИЯ: | BE ASK приглашает пользователя ответить на вопрос. Это позволяет создавать интерактивные пакетные файлы, которые поддерживают условные переходы.Можно задать клавишу (если пользователь нажимает клавишу Enter ) и время ожидания по-умолчанию. Выбранная клавиша возвращается как код возврата и используется в дальнейшем при обработке перехода. |
ВОЗМОЖНЫЕ ПАРАМЕТРЫ:
| сообщение | Текстовая строка - подсказка, выводится при запуске команды. Если в строке есть запятые и/или пробелы, то всю строку следует заключить в кавычки. Используйте пару кавычек без каких-либо символов между ними, если не нужно выводить строку сообщения. | |
| список-клавиш | Список возможных клавиш для ответа (символы или числа); | |
| DEFAULT | Клавиша, возвращаемая по тайм-ауту, если в течение заданного периода ничего не было нажато или если нажата клавиша Enter ; | |
| TIMEOUT | Время в секундах, по истечении которого возвращается код клавиши, заданной по-умолчанию. Если n=0 или тайм-аут не установлен, ASK будет ожидать до тех пор, пока не будет нажата клавиша; | |
| ADJUST | Увеличивает возвращаемое значение на заданное число; | |
| цвет | Задание цвета сообщения в формате SA (Screen Attribute). См. BE SA; | |
Параметр /DEBUG выводит возвращаемый код ERRORLEVEL на экран.
Если пользователь нажимает клавишу, которая не обозначена в списке клавиш, звучит сигнал предупреждения.
ПРИМЕР:
Следующий фрагмент пакетного файла можно использовать как часть системы меню:
be ask "Run the E(ditor), D(atabase) or Q(uit)?" edq if errorlevel 3 goto quit if errorlevel 2 goto database if errorlevel 1 goto editor
| СИНТАКСИС: | BE BEEP [/Dn] [/Fn] [/Rn] {/Wn}
BE BEEP [путь [/E]]
|
|
| НАЗНАЧЕНИЕ: | Задаёт частоту и длительность звука, выдаваемого на динамик. | |
| ПОЯСНЕНИЯ: | BE использует системный динамик для создания звуков заданной частоты и длительности. Используйте их для сигнализации ошибочной ситуации или завершения задачи. |
|
| ВОЗМОЖНЫЕ ПАРАМЕТРЫ: | /Dn |
длительность звука в долях 1/18 секунды |
/Fn |
частота тона в герцах | |
/Rn |
повторить вывод сигнала n раз | |
/Wn |
образовать паузу между сигналами длительностью n/18 секунды | |
/E |
отобразить указанный в кавычках текст в комментарии | |
BE также может воспроизвести ноты из пакетного файла. Это текстовый файл с перечнем ключей. Комментарии можно помещать в пакетный файл после ключей, но им должна предшествовать точка с запятой. Части комментария, заключённые в кавычки, будут выводиться на экран при работе пакетного файла.
ПРИМЕЧАНИЕ:
NDOS самостоятельно не обрабатывает пакетные файлы BE. Если пакетный файл задан в командной строке, NDOS попытается найти программу Norton BE.EXE и подставить командную строку как параметр в неё.
ПРИМЕР:
Исполнить ноту "ля" в течение 2 секунд и повторить 3 раза. Сделать паузу в 1 секунду между нотами:
be beep /f440 /d36 /r3 /w18
Следующий пакетный файл 2NOTE воспроизводит две различные ноты:
/f330 /d10 /r2 /w5; это была "ми" /f440 /d10 /r2 /w5; эта была "соль"
Для того чтобы отобразить слова: "ми" и "соль", используйте:
be beep 2note /e
Построить рамку на экране
| СИНТАКСИС: | BE BOX верх, слева, низ, справа [SINGLE | DOUBLE] [цвет] |
|
| НАЗНАЧЕНИЕ: | Рисует прямоугольник в указанной позиции на экране. | |
| ПОЯСНЕНИЯ: | BE BOX рисует прямоугольники различной формы, размеров и цветов в указанной позиции экрана. Прямоугольники могут иметь одиночную или двойную границу. Прямоугольники не заполняются каким-либо символом, так что любой текст внутри них сохраняется. |
|
| ВОЗМОЖНЫЕ ПАРАМЕТРЫ: | вверх |
строка левого верхнего угла |
слева |
столбец левого верхнего угла | |
низ |
строка нижнего правого угла | |
справа |
столбец нижнего правого угла | |
SINGLE |
одиночная линия границы | |
DOUBLE |
двойная линия границы | |
цвет |
цвет рамки, задаваемый атрибутами SA (атрибуты экрана) для рамки (см. BE SA). | |
По-умолчанию рамка рисуется двойной линией.
См. также DRAWBOX.
ПРИМЕР:
Нарисовать красную рамку на зелёном фоне с границей в виде одиночной линии:
be box 10 10 20 40 single red on green
Очистить экран (и установить цвет)
| СИНТАКСИС: | BE CLS [цвет] |
|
| НАЗНАЧЕНИЕ: | Очищает экран, используя заданные атрибуты (необязательно). | |
| ПОЯСНЕНИЯ: | BE CLS будет очищать экран, используя атрибуты текущего положения курсора или атрибуты, заданные в командной строке. Одна из причин, по которой очистка экрана производится некоторым атрибутом, состоит в том, что другие команды BE, такие как ROWCOL, ASK, и BOX, будут использовать текущие атрибуты экрана, если цвет не задан в командной строке. Устанавливая некоторый атрибут экрана заранее, можно сделать другие команды BE меньше по размеру и быстрее по выполнению. |
|
| Имеет единственный параметр: | цвет |
использовать цвет, заданный в формате SA (см. BE SA). |
См. также CLS.
ПРИМЕР:
Очистить экран и установить красный цвет на зелёном фоне:
be cls red on green
BE команда |
||
| СИНТАКСИС: | BE команда |
|
| НАЗНАЧЕНИЕ: | Расширенные возможности для пакетных файлов. | |
| ПОЯСНЕНИЯ: | Для более быстрого выполнения пакетных файлов NDOS непосредственно поддерживает следующие команды Norton Batch Enhancer: | |
BE ASK |
BE |
|
BE |
BE ROWCOL |
|
BE BOX |
BE SA |
|
BE CLS |
BE SHIFTSTATE |
|
BE DELAY |
BE TRIGGER |
|
BE MONTHDAY |
BE WEEKDAY |
|
BE PRINTCHAR |
BE WINDOW |
|
Каждая команда BE описана под её собственным заголовком. |
||
Пользуйтесь:
BE команда /?
для получения оперативной справки по интересующей команде BE..
ПРИМЕЧАНИЕ:
Если BE не может найти указанную команду, например, пакетный файл для BE в виде:
BE файл процедуры [[GOTO] метка]
то NDOS будет искать BE.EXE (используя путь) и выполнит BE, подставляя остаток команды. Следующие команды BE не имеют значения в NDOS, поскольку встречаются только в пакетных файлах BE:
BE EXIT |
BE GOTO |
BE |
BE DELAY |
Сделать паузу
| СИНТАКСИС: | BE DELAY число |
|
| НАЗНАЧЕНИЕ: | Приостанавливает выполнение пакетного файла на заданное время. | |
| ПОЯСНЕНИЯ: | BE DELAY приостанавливает выполнение пакетного файла на заданный интервал. Выполнение пакетного файла возобновляется по истечении заданного периода времени. |
|
| Имеет единственный параметр: | число |
количество 1/18-секундных интервалов. |
См. также DELAY.
ПРИМЕР:
Сделать паузу в полсекунды:
be delay 9
| СИНТАКСИС: | BE EXIT |
| НАЗНАЧЕНИЕ: | Завершить выполнение пакетного файла BE прежде, чем будет достигнут конец файла. |
| ПОЯСНЕНИЯ: | Команда BE EXIT используется только в пакетных файлах BE и не вызывает никакого действия при вызове из DOS. |
ПРИМЕР:
Следующий пакетный файл COLOR.DAT просит ввести цифры, а затем, в соответствии с нажатой цифрой, меняет цвета экрана:
ask "1=Чёрно/белый, 2=Бело/синий, 3=Прервать" 123 DEFAULT=3 jump onblack, onblue, nochange :onblack sa white on black exit :onblue sa bright white on blue :nochange
Для выполнения этого пакетного файла введите команду:
be color.dat
| СИНТАКСИС: | BE пакетный файл [[GOTO] метка] |
|
| НАЗНАЧЕНИЕ: | Определяет начальную точку выполнения в пакетном файле BE. | |
| ПОЯСНЕНИЯ: | Команда BE GOTO используется для того, чтобы начать выполнение пакетного файла не обязательно с начальной строки. Слово GOTO можно не задавать, если Соглашения для использования меток такие же, как и в DOS. Метка должна начинаться с двоеточия (:) и находиться в отдельной строке в пакетном фале. |
|
ПАРАМЕТРЫ BE GOTO: |
пакетный файл |
Имя пакетного файла для BE. |
метка |
Допустимая метка, которая находится в пакетном файле. | |
BE GOTO отличается от команды GOTO пакетных файлов DOS тем, что работает только в пакетных файлах BE.
BE используется для условных переходов внутри пакетного файла, тогда как BE GOTO используется для организации точки входа в пакетный файл по условию.
ПРИМЕР:
Следующий пакетный файл COLOR.DAT приглашает ввести цифру и затем, в соответствии с нажатой клавишей, меняет цвета экрана.
ask "1=Чёрно/белый, 2=Бело/синий, 3=Прервать" 123 DEFAULT=3 jump onblack, onblue, nochange :onblack sa white on black exit :onblue sa bright white on blue :nochange
Для выполнения этого файла, начиная со второй метки, используйте:
be color.dat goto onblue
| СИНТАКСИС: | |
|
| НАЗНАЧЕНИЕ: | Выполняет переход к метке в пакетных файлах BE в зависимости от выходного кода ( ERRORLEVEL ) предыдущей команды. |
|
| ПОЯСНЕНИЯ: | BE использует выходной код, чтобы переместиться к соответствующей метке и продолжить выполнение. |
|
BE имеет параметры: |
метка |
допустимая метка в пакетном файле. |
/DEFAULT:метка |
Метка, на которую осуществляется переход, если выходной код равен нулю или если выходной код больше, чем число заданных меток. | |
Команда BE работает только в пакетных файлах BE и не имеет какого-либо смысла при вызове непосредственно из DOS.
BE используется для условных переходов в пакетных файлах, тогда как BE GOTO используется для организации точек входа в пакетный файл по условию.
Вывести символ
| СИНТАКСИС: | BE PRINTCHAR символ число_повторений [цвет] |
|
| ПОЯСНЕНИЯ: | BE PRINTCHAR отображает заданный символ заданное количество раз, начиная с текущей позиции курсора. Символ можно повторить до 132 раз. (Предел Norton BE - 80 раз). |
|
| ИМЕЕТ ПАРАМЕТРЫ: | символ |
выводимый символ |
число_повторений |
число повторений | |
цвет |
цвет символа в формате SA (Screen Attribute) (см. BE SA). | |
См. также SCRPUT и SCREEN.
ПРИМЕР:
be printchar X 30 blue on red
| СИНТАКСИС: | BE |
|
| НАЗНАЧЕНИЕ: | Выполняет "горячий" (без выключения питания) перезапуск компьютера. | |
| ПОЯСНЕНИЯ: | BE ROOT даёт возможность выполнять перезапуск компьютера из пакетного файла. Это полезно в конструкциях пакетных файлов, которые воздействуют на конфигурацию системы. |
|
| ПАРАМЕТРЫ: | /VERIFY |
Запросить пользователя о подтверждении перезапуска. |
/ |
Выполнить холодный перезапуск. | |
ПРИМЕЧАНИЕ:
Некоторые диспетчеры памяти или
ПРИМЕР:
Для горячей перезагрузке компьютера с запросом подтверждения Y/N:
be reboot /verify
Позиционирует курсор
| СИНТАКСИС: | BE ROWCOL строка столбец ["текст"] [цвет] |
|
| НАЗНАЧЕНИЕ: | Устанавливает курсор в положение, заданное строкой и столбцом, и (необязательно) выводит текст. | |
| ПОЯСНЕНИЯ: | BE ROWCOL обеспечивает управление положением курсора на экране, так что текст можно выводить в любую позицию. После того, как местоположение курсора определено, вывод текста будет выполняться, начиная с этой позиции. ROWCOL также может вывести строку текста с необязательным параметром цвета. |
|
| ПАРАМЕТРЫ: | строка |
строка, куда помещается курсор |
столбец |
столбец, куда помещается курсор | |
текст |
строка текста (не обязательно) | |
цвет |
цвет текста, задаваемый в формате SA (Screen Attribute - см. BE SA ). |
|
См. также SCRPUT и SCREEN.
ПРИМЕР:
Отобразить текст вблизи центра верхней строки экрана:
be rowcol 1, 27 "Здесь был он!" blue on green
Управление цветом и атрибутами
| СИНТАКСИС: | BE SA NORMAL|UNDERLINE|REVERSE [/N] BE SA [BRIGHT|BLINKING] передний_план [ON фон] [/N] [/CLS] |
| НАЗНАЧЕНИЕ: | Управляет цветом и атрибутами экрана. |
| ПОЯСНЕНИЯ: | BE SA (атрибуты экрана) используются в двух формах. |
Первая форма устанавливает дисплей в режим с подчёркиванием букв или в режим инверсного изображения. Параметр UNDERLINE доступен только на монохромных мониторах (на цветном мониторе выдаст синий цвет для переднего плана). Параметр NORMAL используется для снятия режима UNDERLINE или REVERSE. |
|
Вторая форма BE SA задаёт цвета экрана и режим повышенной яркости или мигание. BRIGHT или BOLD можно использовать для задания повышенной яркости. |
Формат цветовых установок SA также используется командами BE ASK, BE BOX, BE CLS, BE PRINTCHAR, BE ROWCOL и BE WINDOW.
| Допустимыми цветами для переднего плана и фона являются: | |||
| WHITE | WHITE (белый) | BLACK | BLACK (чёрный) |
| RED | RED (красный) | MAGENTA | MAGENTA (пурпурный) |
| BLUE | BLUE (синий) | GREEN | GREEN (зелёный) |
| CYAN | CYAN (серо-голубой) | YELLOW | YELLOW (жёлтый) |
| ПАРАМЕТРЫ: | /N |
не устанавливать цвет бордюра (по-умолчанию используется тот же цвет, что и у фона) |
/CLS |
очистить экран после установки атрибутов |
См. также COLOR.
ПРИМЕРЫ:
Установить дисплей в режим инверсного изображения:
be sa reverse
Установить цвет переднего плана синим, повышенной яркости, цвет фона красный:
be sa bright blue on red
| СИНТАКСИС: | BE SHIFTSTATE [/DEBUG] |
|
| НАЗНАЧЕНИЕ: | Возвращает состояние клавиш Shift, Alt и Ctrl. | |
| ПОЯСНЕНИЯ: | Команда BE SHIFTSTATE возвращает выходной код ( ERRORLEVEL ), определяющий состояние клавиш: левая Shift, правая Shift, Alt и Ctrl в этот момент. SHIFTSTATE будет выдавать следующие коды для четырёх клавиш, которые можно складывать друг с другом для получения более сложных комбинаций: |
|
| 1 | Правая клавиша Shift. | |
| 2 | Левая клавиша Shift | |
| 4 | Клавиша Ctrl (левая или правая) | |
| 8 | Клавиша Alt (левая или правая) | |
| Единственный параметр: | /DEBUG |
отобразить возвращаемое значение ERRORLEVEL |
ПРИМЕР:
Отобразить состояние клавиш Shift:
be shiftstate /debug
Построение сплошного прямоугольника
| СИНТАКСИС: | BE WINDOW верх, слева, низ, справа, [цвет] [ZOOM|EXPLODE] [SHADOW] |
|
| НАЗНАЧЕНИЕ: | Рисует заполненный прямоугольник-окно, можно задать изображение отбрасываемой тени и эффект распахивания. | |
| ПОЯСНЕНИЯ: | BE WINDOW рисует заполненные прямоугольники различной формы, размеров и цветов в заданном месте экрана. Прямоугольники имеют границу в виде двойной линии, и они заполнены: любой текст внутри окна будет стёрт. |
|
| ПАРАМЕТРЫ: | вверх |
строка верхнего левого угла окна |
слева |
столбец верхнего левого угла окна | |
низ |
строка нижнего правого угла окна | |
справа |
столбец нижнего правого угла окна | |
цвет |
цвет окна, задаваемый в формате SA (Screen Attribute) | |
ZOOM |
распахнуть окно при рисовании (EXPLODE - синоним) | |
SHADOW |
добавить вид отбрасываемой от окна "тени" | |
См. также BE SA.
ПРИМЕР:
Нарисовать на экране окно с тенью:
be window 10 10 20 40 red on blue shadow
Когда дисплей установлен в
| Числ. Значение | Цветовой атрибут | Символ или фон? |
|---|---|---|
| 0 | Чёрный | Символ |
| 1 | Синий | Символ |
| 2 | Зелёный | Символ |
| 3 | Циан (голубой) | Символ |
| 4 | Красный | Символ |
| 5 | Пурпурный | Символ |
| 6 | Коричневый | Символ |
| 7 | Светло-серый | Символ |
| 8 | Тёмно-серый | Символ |
| 9 | Светло-синий | Символ |
| 10 | Светло-зелёный | Символ |
| 11 | Светло-голубой | Символ |
| 12 | Светло-красный | Символ |
| 13 | Светло-пурпурный | Символ |
| 14 | Жёлтый | Символ |
| 15 | Белый | Символ |
| 0 | Чёрный | Фон |
| 16 | Синий | Фон |
| 32 | Зелёный | Фон |
| 48 | Циан (голубой) | Фон |
| 64 | Красный | Фон |
| 80 | Пурпурный | Фон |
| 96 | Коричневый | Фон |
| 112 | Светло-серый | Фон |
| 128 | Мигание | Символ |
| Примечание: Атрибут = Символ+Фон (+ Мигание) | ||
Младшие четыре бита байта атрибутов устанавливают цвет самого символа (бит 3 включает высокую интенсивность цвета). Следующие три бита устанавливают фон символа, и при обычных обстоятельствах старший бит включает и выключает мигание. Образование шестнадцати цветов из 4-х бит проиллюстрировано в таблице 4.2.
| Сопоставление кодов цветов экрана в 16-ти цветной палитре | ||||
|---|---|---|---|---|
| Канал | Интенсивность | |||
| Красный | Зелёный | Синий | Низкая (0) | Высокая (1) |
| 0 | 0 | 0 | Чёрный (0) | Серый (8) |
| 0 | 0 | 1 | Синий (1) | Светло-синий (9) |
| 0 | 1 | 0 | Зелёный (2) | Светло-зелёный (10) |
| 0 | 1 | 1 | Циан (3) | Светлый циан (11) |
| 1 | 0 | 0 | Красный (4) | Ярко-красный (12) |
| 1 | 0 | 1 | Магента (5) | Светлая магента (13) |
| 1 | 1 | 0 | Коричневый (6) | Жёлтый (14) |
| 1 | 1 | 1 | Белый (7) | Ярко-белый (15) |
Прерывания DOS и BIOS предоставляют очень скудные возможности для работы с цветным текстом. Только функция 9 прерывания 10H принимает байт атрибутов при выводе символа. Функция 0AH прерывания 10H выводит символ без указания цвета - он принимается равным цвету по-умолчанию. Функция 0DH прерывания также оставляет нетронутым байт атрибутов.
Функция вывода на экран DOS прерывания 21H всегда выводит белые символы на чёрном фоне. Единственный способ обойти это ограничение - использовать
Приведём примеры на языке ассемблера вывода сначала обычной строки (белым по чёрному), а затем надпись: "Внимание!" жёлтым цветом на красном фоне.
Пример 4.1.
; --- в сегменте данных STRING_01 DB 'Я хочу обратить Ваше',0AH,0DH,'$' STRING_02 DB 'Внимание!$' NORM_COLOR DB 27, '[0m$' ATTENT_COLOR DB 27, '[1;33;41m$' CLEAR_COLOR DB 27, '[0m$' ; --- в сегменте кода ; --- вывод строк MOV AH, 9 ; функция вывода страницы LEA DX, NORM_COLOR ; Обычный цвет INT 21H LEA DX, STRING_01 ; Первая строка INT 21H LEA DX, ATTENT_COLOR ; Выделение цветом INT 21H LEA DX, STRING_02 ; Вторая строка INT 21H LEA DX, CLEAR_COLOR ; Сброс атрибутов текста INT 21H
Смотри Листинг программы ex04001.
В стандарте на язык Си (ANSI C) нет функций для работы с цветом. Вместо этого рекомендуется использовать escape - последовательности, при условии, что у Вас в системе установлен драйвер ANSI.SYS
В этом случае пример 4.1. запишется следующим образом:
Пример 4.2.
/* ex04002.c */
/* Вставка заголовочных файлов */
#include <stdio.h>
#include <conio.h>
/* описание констант */
const char NORM_COLOR[] = "\x1b[0m"; //Нормальный режим
const char ATTENT_COLOR[] = "\x1b[1;33;41m"; // Выделение цветом
/* Основная программа */
void main( void )
{
/* Определение временной переменной */
char cJunk;
/* Вывод строк */
puts( NORM_COLOR );
puts( "\nЯ хочу обратить Ваше" );
puts( ATTENT_COLOR );
puts( "Внимание!\x1b[0m" );
/* Завершение работы программы */
cputs( "Press key Enter to exit...\r\n" );
cJunk = getche();
}
/* Конец программы */
Ниже рассмотрены некоторые функции для "цветного" вывода средствами Turbo C++ и SPHINX C--.
| ФУНКЦИЯ | TEXTATTR |
| ОПИСАНА В: | <conio.h> (содержит только прототип); |
| СИНТАКСИС: | void textattr( newattr ); int newattr; |
| НАЗНАЧЕНИЕ: | Устанавливает текстовые атрибуты; |
| ОПИСАНИЕ: | textattr позволяет устанавливать цвет фона и цвет символов одновременно за один вызов. (Обычно вы устанавливаете атрибуты с помощью textcolor и textbackground );Эта функция не относится к символам, находящимся в текущий момент на экране; она относится только к тому, что отображается функциями (такими как |
Информация цвета кодируется в параметре newattr следующим образом (смотри рисунок 4.1):
(рис 4.1) Расшифровка байта атрибута символа при консольном выводеВ этом 8-битном параметре newattr:
ffff - 4-битный цвет символов (1 - 15)bbb - 3-битный цвет фона (1 - 7)B - бит мигания.Если бит мигания включён, то символ будет мигать. Это можно осуществить путём добавления константы в атрибут. Если вы используете символьные цветовые константы, определённые в conio.h для создания текстовых атрибутов с помощью textattr, запомните следующие ограничения на цвет фона:
| Константы для атрибутов текста, определённые в <conio.h> | |||
|---|---|---|---|
| Константа | Перевод | Числ. Значение | Для символов или фона? |
| BLACK | Чёрный | 0 | оба |
| BLUE | Синий | 1 | оба |
| GREEN | Зелёный | 2 | оба |
| CYAN | Циан (голубой) | 3 | оба |
| RED | Красный | 4 | оба |
| MAGENTA | Пурпурный | 5 | оба |
| BROWN | Коричневый | 6 | оба |
| LIGHTGRAY | Светло-серый | 7 | оба |
| DARKGRAY | Тёмно-серый | 8 | для символов |
| LIGHTBLUE | Светло-синий | 9 | для символов |
| LIGHTGREEN | Светло-зелёный | 10 | для символов |
| LIGHTCYAN | Светло-голубой | 11 | для символов |
| LIGHTRED | Светло-красный | 12 | для символов |
| LIGHTMAGENTA | Светло-пурпурный | 13 | для символов |
| YELLOW | Жёлтый | 14 | для символов |
| WHITE | Белый | 15 | для символов |
| Мигание | 128 | для символов | |
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
| ПЕРЕНОСИМОСТЬ: | textattr работает только на IBM PC и совместимых системах; |
| ФУНКЦИЯ | TEXTCOLOR |
| ОПИСАНА В: | <conio.h> (содержится прототип функции); |
| СИНТАКСИС: | void textcolor( newcolor); int newcolor; |
| НАЗНАЧЕНИЕ: | Устанавливает цвет символов в текстовом режиме; |
| ОПИСАНИЕ: | textcolor выбирает цвет символа. Эта функция оказывает влияние на функции, производящие прямой вывод на экран в текстовом режиме. Вы можете выбрать цвет, используя символьную константу, определённую в conio.h. Если вы используете эту константу, вы должны включить файл conio.h ; |
Эта функция не относится к символам, находящимся в текущий момент на экране; она относится только к тем символам, которые выводятся функциями (такими как cprintf ) в текстовом режиме, осуществлявшим вывод на дисплей после вызова textcolor.
Следующая таблица отображает возможные цвета (как
| Константы для атрибутов текста, определённые в <conio.h> | ||
|---|---|---|
| Константа | Перевод | Числ.знач. |
| BLACK | Чёрный | 0 |
| BLUE | Синий | 1 |
| GREEN | Зелёный | 2 |
| CYAN | Циан (голубой) | 3 |
| RED | Красный | 4 |
| MAGENTA | Пурпурный | 5 |
| BROWN | Коричневый | 6 |
| LIGHTGRAY | Светло-серый | 7 |
| DARKGRAY | Тёмно-серый | 8 |
| LIGHTBLUE | Светло-синий | 9 |
| LIGHTGREEN | Светло-зелёный | 10 |
| LIGHTCYAN | Светло-голубой | 11 |
| LIGHTRED | Светло-красный | 12 |
| LIGHTMAGENTA | Светло-пурпурный | 13 |
| YELLOW | Жёлтый | 14 |
| WHITE | Белый | 15 |
| Мигание | 128 | |
Вы можете сделать символы мигающими, добавляя к цвету символов. Встроенная константа предназначена для этой цели. Например:
textcolor(CYAN+BLINK);
Замечание. Некоторые мониторы не определяют интенсивность сигнала, используемую для создания восьми "light" (светлый) цветов (8-15). На таких мониторах светлые цвета будут изображаться как их "тёмные" эквиваленты (0-7). Аналогично, системы, которые не отображают цвет, используют эти номера как оттенки одного цвета, особые образцы или особые атрибуты (такие как подчёркивание, полужирный шрифт, курсив и т.п.). То, что вы увидите при этом на экране, зависит от оборудования.
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
| ПЕРЕНОСИМОСТЬ: | Только на IBM PC и совместимых компьютерах. Соответствующая функция существует в Turbo Pascal; |
| ФУНКЦИЯ | TEXTBACKGROUND |
| ОПИСАНА В: | <conio.h> (содержит прототип); |
| СИНТАКСИС: | void textbackground( newcolor); int newcolor; |
| НАЗНАЧЕНИЕ | Выбирает новый цвет фона для текста; |
| ОПИСАНИЕ: | textbackground выбирает цвет фона в текстовом режиме. Эта функция работает только для функций, осуществляющих примой вывод на экран в текстовом режиме. newcolor определяет новый цвет фона. Вы можете определить его как целое (от 0 до 7) или как одну из |
Эта функция не относится к символам, находящимся в текущий момент на экране; она относится только к тем символам, которые выводятся функциями (такими как cprintf ) в текстовом режиме, осуществлявшим вывод на экран после вызова этой функции.
| Константы для атрибутов текста, определённые в <conio.h> | ||
|---|---|---|
| Константа | Перевод | Числ.знач. |
| BLACK | Чёрный | 0 |
| BLUE | Синий | 1 |
| GREEN | Зелёный | 2 |
| CYAN | Циан (голубой) | 3 |
| RED | Красный | 4 |
| MAGENTA | Пурпурный | 5 |
| BROWN | Коричневый | 6 |
| LIGHTGRAY | Светло-серый | 7 |
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Нет; |
| ПЕРЕНОСИМОСТЬ: | Только с IBM PC и совместимыми компьютерами. Соответствующая функция существует в Turbo Pascal; |
Пример 4.3.
Использование функций управления атрибутами символов textcolor и textbackground.
/* ex04003.c */
/* Работает только в системе Borland C/C++ 3.10 */
/* Вставка заголовочных файлов */
#include <conio.h>
/* Основная программа */
void main( void )
{
/* Определение временной переменной */
char cJunk;
/* Вывод строк */
textcolor( LIGHTGRAY); textbackground( BLACK );
cputs( "\r\nЯ хочу обратить Ваше\r\n" );
textcolor( YELLOW); textbackground( RED );
cputs( "Внимание!" );
textcolor( LIGHTGRAY); textbackground( BLACK );
/* Завершение работы программы */
cputs( "\r\n\r\nPress key Enter to exit...\r\n" );
cJunk = getche();
}
/* Конец программы */
В be, с помощью которой можно менять цвет выводимых символов и их фон. Её синтаксис следующий:
be "команда" "опции и параметры"
а также
be "имя batch-файла".dat
Все команды и опции команды be приведены в приложении №1 (пункт 4.4 данной лекции). Здесь же приведём пример batch файла, реализующий пример 4.3.:
Пример 4.4. Файл ex04005.dat
cls white on black rowcol 1, 1 "Я хочу обратить Ваше" rowcol 2, 1 "Внимание!" bright yellow on red
Примечание: Этот файл запускается из командной строки командой:
Пример 4.5
be ex04005.dat
Вывод текста с "нестандартными" атрибутами на языках Perl и Python не возможен.
Вывод текста с атрибутами цвета на языке ПРОЛОГ осуществляется с использованием предиката attribute, который может читать и устанавливать текстовый атрибут;
Приведём синтаксис предиката attribute
| ФУНКЦИЯ: | attribute |
| СИНТАКСИС: | attribute(Attr), где Attr - атрибут символа (целое число); |
| НАЗНАЧЕНИЕ: | Устанавливает или выдаёт текущий атрибут символа; |
| ОПИСАНИЕ: | attribute устанавливает или считывает текущий атрибут вывода. Вывод при помощи write или writef даёт отображение экрана с этим атрибутом. Каждое окно имеет свой атрибут вывода. Когда вы создаёте окно, атрибут вывода автоматически принимает значение атрибута окна, но вы можете изменить его предикатом attribute ; |
| ШАБЛОНЫ: | (i) (o) ; |
| ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: | Всегда успех; |
| ОШИБКИ: | Никогда не даёт; |
Пример 4.3, записанный на языке ПРОЛОГ, будет выглядеть следующим образом:
Пример 4.6.
/* Файл ex04006.pro */ domains /* Описываем переменные */ CNorm_color= char predicates attent norm_color clauses /* Определяем правила */ norm_color :- attribute( '\07' ). attent :- attribute( '\78' ), nl, write( "Внимание!" ). goal /* Вывод нормального текста */ norm_color, nl, write( "Я хочу обратить Ваше" ),nl, /* Вывод текста с изменёнными атрибутами */ attent, /* Возвращение нормальных атрибутов */ norm_color, nl, /* Вывод завершающей надписи */ write( "Press key Enter to exit..." ), readchar( _ ). /* Конец программы */
Как Вы, наверное, уже уяснили то, что основным способом манипуляции положением позиции курсора, сменой атрибутов текста при выводе на экран является использование так называемых
Для поддержки escape- последовательностей в операционных системах MS-DOS, DEVICE или DEVICEHIGH. В остальных операционных системах поддержка расширений ANSI включена по-умолчанию (в реестре и файлах конфигурации). Если escape- последовательности всё же не работают, смотрите настройки Вашего компьютера (в файлах конфигурации и в реестре).
После прочтения последних трёх лекций Вы уяснили, каким образом символьные данные выводятся на дисплей с использованием "функций среднего уровня". Материал может показаться Вам не актуальным - ведь Вы уже привыкли работать в "
Кроме того, Вы ознакомились с принципиально важными функциями для вывода текста на экран, имеющие при консольном выводе не меньшее значение, чем функции манипулирования контекстом Windows, о котором речь пойдёт в последующих лекциях.
В данном разделе даётся описание функции работы с командными файлами при помощи приложения Norton Utilities 8.0 BE.
BE ASK |
Ожидание нажатия заданной клавиши |
| СИНТАКСИС: | BE ASK "приглашение" [список-клавиш][DEFAULT=клавиша][TIMEOUT=n][ADJUST=n][цвет][/DEBUG] |
| НАЗНАЧЕНИЕ: | Запрашивает ввод с клавиатуры и устанавливает код переменной DOS ERRORLEVEL |
| ПОЯСНЕНИЯ: | BE ASK приглашает пользователя ответить на вопрос. Это позволяет создавать интерактивные пакетные файлы, которые поддерживают условные переходы.Можно задать клавишу (если пользователь нажимает клавишу Enter ) и время ожидания по-умолчанию. Выбранная клавиша возвращается как код возврата и используется в дальнейшем при обработке перехода. |
ВОЗМОЖНЫЕ ПАРАМЕТРЫ:
| сообщение | Текстовая строка - подсказка, выводится при запуске команды. Если в строке есть запятые и/или пробелы, то всю строку следует заключить в кавычки. Используйте пару кавычек без каких-либо символов между ними, если не нужно выводить строку сообщения. | |
| список-клавиш | Список возможных клавиш для ответа (символы или числа); | |
| DEFAULT | Клавиша, возвращаемая по тайм-ауту, если в течение заданного периода ничего не было нажато или если нажата клавиша Enter ; | |
| TIMEOUT | Время в секундах, по истечении которого возвращается код клавиши, заданной по-умолчанию. Если n=0 или тайм-аут не установлен, ASK будет ожидать до тех пор, пока не будет нажата клавиша; | |
| ADJUST | Увеличивает возвращаемое значение на заданное число; | |
| цвет | Задание цвета сообщения в формате SA (Screen Attribute). См. BE SA; | |
Параметр /DEBUG выводит возвращаемый код ERRORLEVEL на экран.
Если пользователь нажимает клавишу, которая не обозначена в списке клавиш, звучит сигнал предупреждения.
ПРИМЕР:
Следующий фрагмент пакетного файла можно использовать как часть системы меню:
be ask "Run the E(ditor), D(atabase) or Q(uit)?" edq if errorlevel 3 goto quit if errorlevel 2 goto database if errorlevel 1 goto editor
| СИНТАКСИС: | BE BEEP [/Dn] [/Fn] [/Rn] {/Wn}
BE BEEP [путь [/E]]
|
|
| НАЗНАЧЕНИЕ: | Задаёт частоту и длительность звука, выдаваемого на динамик. | |
| ПОЯСНЕНИЯ: | BE использует системный динамик для создания звуков заданной частоты и длительности. Используйте их для сигнализации ошибочной ситуации или завершения задачи. |
|
| ВОЗМОЖНЫЕ ПАРАМЕТРЫ: | /Dn |
длительность звука в долях 1/18 секунды |
/Fn |
частота тона в герцах | |
/Rn |
повторить вывод сигнала n раз | |
/Wn |
образовать паузу между сигналами длительностью n/18 секунды | |
/E |
отобразить указанный в кавычках текст в комментарии | |
BE также может воспроизвести ноты из пакетного файла. Это текстовый файл с перечнем ключей. Комментарии можно помещать в пакетный файл после ключей, но им должна предшествовать точка с запятой. Части комментария, заключённые в кавычки, будут выводиться на экран при работе пакетного файла.
ПРИМЕЧАНИЕ:
NDOS самостоятельно не обрабатывает пакетные файлы BE. Если пакетный файл задан в командной строке, NDOS попытается найти программу Norton BE.EXE и подставить командную строку как параметр в неё.
ПРИМЕР:
Исполнить ноту "ля" в течение 2 секунд и повторить 3 раза. Сделать паузу в 1 секунду между нотами:
be beep /f440 /d36 /r3 /w18
Следующий пакетный файл 2NOTE воспроизводит две различные ноты:
/f330 /d10 /r2 /w5; это была "ми" /f440 /d10 /r2 /w5; эта была "соль"
Для того чтобы отобразить слова: "ми" и "соль", используйте:
be beep 2note /e
Построить рамку на экране
| СИНТАКСИС: | BE BOX верх, слева, низ, справа [SINGLE | DOUBLE] [цвет] |
|
| НАЗНАЧЕНИЕ: | Рисует прямоугольник в указанной позиции на экране. | |
| ПОЯСНЕНИЯ: | BE BOX рисует прямоугольники различной формы, размеров и цветов в указанной позиции экрана. Прямоугольники могут иметь одиночную или двойную границу. Прямоугольники не заполняются каким-либо символом, так что любой текст внутри них сохраняется. |
|
| ВОЗМОЖНЫЕ ПАРАМЕТРЫ: | вверх |
строка левого верхнего угла |
слева |
столбец левого верхнего угла | |
низ |
строка нижнего правого угла | |
справа |
столбец нижнего правого угла | |
SINGLE |
одиночная линия границы | |
DOUBLE |
двойная линия границы | |
цвет |
цвет рамки, задаваемый атрибутами SA (атрибуты экрана) для рамки (см. BE SA). | |
По-умолчанию рамка рисуется двойной линией.
См. также DRAWBOX.
ПРИМЕР:
Нарисовать красную рамку на зелёном фоне с границей в виде одиночной линии:
be box 10 10 20 40 single red on green
Очистить экран (и установить цвет)
| СИНТАКСИС: | BE CLS [цвет] |
|
| НАЗНАЧЕНИЕ: | Очищает экран, используя заданные атрибуты (необязательно). | |
| ПОЯСНЕНИЯ: | BE CLS будет очищать экран, используя атрибуты текущего положения курсора или атрибуты, заданные в командной строке. Одна из причин, по которой очистка экрана производится некоторым атрибутом, состоит в том, что другие команды BE, такие как ROWCOL, ASK, и BOX, будут использовать текущие атрибуты экрана, если цвет не задан в командной строке. Устанавливая некоторый атрибут экрана заранее, можно сделать другие команды BE меньше по размеру и быстрее по выполнению. |
|
| Имеет единственный параметр: | цвет |
использовать цвет, заданный в формате SA (см. BE SA). |
См. также CLS.
ПРИМЕР:
Очистить экран и установить красный цвет на зелёном фоне:
be cls red on green
BE команда |
||
| СИНТАКСИС: | BE команда |
|
| НАЗНАЧЕНИЕ: | Расширенные возможности для пакетных файлов. | |
| ПОЯСНЕНИЯ: | Для более быстрого выполнения пакетных файлов NDOS непосредственно поддерживает следующие команды Norton Batch Enhancer: | |
BE ASK |
BE |
|
BE |
BE ROWCOL |
|
BE BOX |
BE SA |
|
BE CLS |
BE SHIFTSTATE |
|
BE DELAY |
BE TRIGGER |
|
BE MONTHDAY |
BE WEEKDAY |
|
BE PRINTCHAR |
BE WINDOW |
|
Каждая команда BE описана под её собственным заголовком. |
||
Пользуйтесь:
BE команда /?
для получения оперативной справки по интересующей команде BE..
ПРИМЕЧАНИЕ:
Если BE не может найти указанную команду, например, пакетный файл для BE в виде:
BE файл процедуры [[GOTO] метка]
то NDOS будет искать BE.EXE (используя путь) и выполнит BE, подставляя остаток команды. Следующие команды BE не имеют значения в NDOS, поскольку встречаются только в пакетных файлах BE:
BE EXIT |
BE GOTO |
BE |
BE DELAY |
Сделать паузу
| СИНТАКСИС: | BE DELAY число |
|
| НАЗНАЧЕНИЕ: | Приостанавливает выполнение пакетного файла на заданное время. | |
| ПОЯСНЕНИЯ: | BE DELAY приостанавливает выполнение пакетного файла на заданный интервал. Выполнение пакетного файла возобновляется по истечении заданного периода времени. |
|
| Имеет единственный параметр: | число |
количество 1/18-секундных интервалов. |
См. также DELAY.
ПРИМЕР:
Сделать паузу в полсекунды:
be delay 9
| СИНТАКСИС: | BE EXIT |
| НАЗНАЧЕНИЕ: | Завершить выполнение пакетного файла BE прежде, чем будет достигнут конец файла. |
| ПОЯСНЕНИЯ: | Команда BE EXIT используется только в пакетных файлах BE и не вызывает никакого действия при вызове из DOS. |
ПРИМЕР:
Следующий пакетный файл COLOR.DAT просит ввести цифры, а затем, в соответствии с нажатой цифрой, меняет цвета экрана:
ask "1=Чёрно/белый, 2=Бело/синий, 3=Прервать" 123 DEFAULT=3 jump onblack, onblue, nochange :onblack sa white on black exit :onblue sa bright white on blue :nochange
Для выполнения этого пакетного файла введите команду:
be color.dat
| СИНТАКСИС: | BE пакетный файл [[GOTO] метка] |
|
| НАЗНАЧЕНИЕ: | Определяет начальную точку выполнения в пакетном файле BE. | |
| ПОЯСНЕНИЯ: | Команда BE GOTO используется для того, чтобы начать выполнение пакетного файла не обязательно с начальной строки. Слово GOTO можно не задавать, если Соглашения для использования меток такие же, как и в DOS. Метка должна начинаться с двоеточия (:) и находиться в отдельной строке в пакетном фале. |
|
ПАРАМЕТРЫ BE GOTO: |
пакетный файл |
Имя пакетного файла для BE. |
метка |
Допустимая метка, которая находится в пакетном файле. | |
BE GOTO отличается от команды GOTO пакетных файлов DOS тем, что работает только в пакетных файлах BE.
BE используется для условных переходов внутри пакетного файла, тогда как BE GOTO используется для организации точки входа в пакетный файл по условию.
ПРИМЕР:
Следующий пакетный файл COLOR.DAT приглашает ввести цифру и затем, в соответствии с нажатой клавишей, меняет цвета экрана.
ask "1=Чёрно/белый, 2=Бело/синий, 3=Прервать" 123 DEFAULT=3 jump onblack, onblue, nochange :onblack sa white on black exit :onblue sa bright white on blue :nochange
Для выполнения этого файла, начиная со второй метки, используйте:
be color.dat goto onblue
| СИНТАКСИС: | |
|
| НАЗНАЧЕНИЕ: | Выполняет переход к метке в пакетных файлах BE в зависимости от выходного кода ( ERRORLEVEL ) предыдущей команды. |
|
| ПОЯСНЕНИЯ: | BE использует выходной код, чтобы переместиться к соответствующей метке и продолжить выполнение. |
|
BE имеет параметры: |
метка |
допустимая метка в пакетном файле. |
/DEFAULT:метка |
Метка, на которую осуществляется переход, если выходной код равен нулю или если выходной код больше, чем число заданных меток. | |
Команда BE работает только в пакетных файлах BE и не имеет какого-либо смысла при вызове непосредственно из DOS.
BE используется для условных переходов в пакетных файлах, тогда как BE GOTO используется для организации точек входа в пакетный файл по условию.
Вывести символ
| СИНТАКСИС: | BE PRINTCHAR символ число_повторений [цвет] |
|
| ПОЯСНЕНИЯ: | BE PRINTCHAR отображает заданный символ заданное количество раз, начиная с текущей позиции курсора. Символ можно повторить до 132 раз. (Предел Norton BE - 80 раз). |
|
| ИМЕЕТ ПАРАМЕТРЫ: | символ |
выводимый символ |
число_повторений |
число повторений | |
цвет |
цвет символа в формате SA (Screen Attribute) (см. BE SA). | |
См. также SCRPUT и SCREEN.
ПРИМЕР:
be printchar X 30 blue on red
| СИНТАКСИС: | BE |
|
| НАЗНАЧЕНИЕ: | Выполняет "горячий" (без выключения питания) перезапуск компьютера. | |
| ПОЯСНЕНИЯ: | BE ROOT даёт возможность выполнять перезапуск компьютера из пакетного файла. Это полезно в конструкциях пакетных файлов, которые воздействуют на конфигурацию системы. |
|
| ПАРАМЕТРЫ: | /VERIFY |
Запросить пользователя о подтверждении перезапуска. |
/ |
Выполнить холодный перезапуск. | |
ПРИМЕЧАНИЕ:
Некоторые диспетчеры памяти или
ПРИМЕР:
Для горячей перезагрузке компьютера с запросом подтверждения Y/N:
be reboot /verify
Позиционирует курсор
| СИНТАКСИС: | BE ROWCOL строка столбец ["текст"] [цвет] |
|
| НАЗНАЧЕНИЕ: | Устанавливает курсор в положение, заданное строкой и столбцом, и (необязательно) выводит текст. | |
| ПОЯСНЕНИЯ: | BE ROWCOL обеспечивает управление положением курсора на экране, так что текст можно выводить в любую позицию. После того, как местоположение курсора определено, вывод текста будет выполняться, начиная с этой позиции. ROWCOL также может вывести строку текста с необязательным параметром цвета. |
|
| ПАРАМЕТРЫ: | строка |
строка, куда помещается курсор |
столбец |
столбец, куда помещается курсор | |
текст |
строка текста (не обязательно) | |
цвет |
цвет текста, задаваемый в формате SA (Screen Attribute - см. BE SA ). |
|
См. также SCRPUT и SCREEN.
ПРИМЕР:
Отобразить текст вблизи центра верхней строки экрана:
be rowcol 1, 27 "Здесь был он!" blue on green
Управление цветом и атрибутами
| СИНТАКСИС: | BE SA NORMAL|UNDERLINE|REVERSE [/N] BE SA [BRIGHT|BLINKING] передний_план [ON фон] [/N] [/CLS] |
| НАЗНАЧЕНИЕ: | Управляет цветом и атрибутами экрана. |
| ПОЯСНЕНИЯ: | BE SA (атрибуты экрана) используются в двух формах. |
Первая форма устанавливает дисплей в режим с подчёркиванием букв или в режим инверсного изображения. Параметр UNDERLINE доступен только на монохромных мониторах (на цветном мониторе выдаст синий цвет для переднего плана). Параметр NORMAL используется для снятия режима UNDERLINE или REVERSE. |
|
Вторая форма BE SA задаёт цвета экрана и режим повышенной яркости или мигание. BRIGHT или BOLD можно использовать для задания повышенной яркости. |
Формат цветовых установок SA также используется командами BE ASK, BE BOX, BE CLS, BE PRINTCHAR, BE ROWCOL и BE WINDOW.
| Допустимыми цветами для переднего плана и фона являются: | |||
| WHITE | WHITE (белый) | BLACK | BLACK (чёрный) |
| RED | RED (красный) | MAGENTA | MAGENTA (пурпурный) |
| BLUE | BLUE (синий) | GREEN | GREEN (зелёный) |
| CYAN | CYAN (серо-голубой) | YELLOW | YELLOW (жёлтый) |
| ПАРАМЕТРЫ: | /N |
не устанавливать цвет бордюра (по-умолчанию используется тот же цвет, что и у фона) |
/CLS |
очистить экран после установки атрибутов |
См. также COLOR.
ПРИМЕРЫ:
Установить дисплей в режим инверсного изображения:
be sa reverse
Установить цвет переднего плана синим, повышенной яркости, цвет фона красный:
be sa bright blue on red
| СИНТАКСИС: | BE SHIFTSTATE [/DEBUG] |
|
| НАЗНАЧЕНИЕ: | Возвращает состояние клавиш Shift, Alt и Ctrl. | |
| ПОЯСНЕНИЯ: | Команда BE SHIFTSTATE возвращает выходной код ( ERRORLEVEL ), определяющий состояние клавиш: левая Shift, правая Shift, Alt и Ctrl в этот момент. SHIFTSTATE будет выдавать следующие коды для четырёх клавиш, которые можно складывать друг с другом для получения более сложных комбинаций: |
|
| 1 | Правая клавиша Shift. | |
| 2 | Левая клавиша Shift | |
| 4 | Клавиша Ctrl (левая или правая) | |
| 8 | Клавиша Alt (левая или правая) | |
| Единственный параметр: | /DEBUG |
отобразить возвращаемое значение ERRORLEVEL |
ПРИМЕР:
Отобразить состояние клавиш Shift:
be shiftstate /debug
Построение сплошного прямоугольника
| СИНТАКСИС: | BE WINDOW верх, слева, низ, справа, [цвет] [ZOOM|EXPLODE] [SHADOW] |
|
| НАЗНАЧЕНИЕ: | Рисует заполненный прямоугольник-окно, можно задать изображение отбрасываемой тени и эффект распахивания. | |
| ПОЯСНЕНИЯ: | BE WINDOW рисует заполненные прямоугольники различной формы, размеров и цветов в заданном месте экрана. Прямоугольники имеют границу в виде двойной линии, и они заполнены: любой текст внутри окна будет стёрт. |
|
| ПАРАМЕТРЫ: | вверх |
строка верхнего левого угла окна |
слева |
столбец верхнего левого угла окна | |
низ |
строка нижнего правого угла окна | |
справа |
столбец нижнего правого угла окна | |
цвет |
цвет окна, задаваемый в формате SA (Screen Attribute) | |
ZOOM |
распахнуть окно при рисовании (EXPLODE - синоним) | |
SHADOW |
добавить вид отбрасываемой от окна "тени" | |
См. также BE SA.
ПРИМЕР:
Нарисовать на экране окно с тенью:
be window 10 10 20 40 red on blue shadow
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.