- •1. Цель курсовой работы
- •2. Командный процессор ос ms Windows cmd
- •2.1. Оболочка (интерпретатор) командной строки command.Com/cmd.Exe
- •Листинг 1. Процедура инициализации
- •2.3. Структура команд. Параметры и ключи. Вывод справочной информации
- •2.4. Команды
- •2.4.4. Команды Date и Time
- •2.4.7.2. Команда cd
- •2.4.7.3. Команда dir
- •2.4.7.4. Команды mkdir
- •2.4.7.5. Команда del или erase
- •3. Назначение ключей и параметров, описание команд
- •3.1. Команда type
- •Листинг 2. Процедура type
- •3.2. Команда time
- •Листинг 3. Процедура отображения и установки времени
- •3.3. Команда date
- •Листинг 4. Отображение и установка системного времени
- •3.4. Команда mkdir
- •Листинг 5. Процедура mkdir
- •3.5. Команда rd
- •Листинг 6. Процедура rd
- •3.6. Команда cd
- •3.7. Команда attrib
- •Листинг 7. ПроцедураAttrib
- •3.8. Команда cls
- •Листинг 8. Процедура cls
- •3.9. Команда sort
- •Листинг 9. Процедура sort
- •3.10. Команда echo
- •Листинг 10. Процедура echo
- •3.11. Команда del|erase
- •Листинг 11. Процедура del
- •3.12. Команда dir
- •Листинг 12. ПроцедураDir
- •3.13. Команда invertcolor
- •Листинг 13. Процедура invertcolor
- •3.14. Разбиение на лексемы, синтаксический анализ, регулярные выражения
- •Листинг 14. Проверка на соответстиве команд
- •3.15. Процедуры упорядочивания массива (сортировка)
- •3.17. Русификация вывода командного процессора
- •4. Примеры выполнения работы команд
- •4.1. Команда dir
- •4.2. Команда attrib
- •4.3. Команда date и time
- •4.4. Команда type и sort
- •4.5. Команда mkdir, rd, cd
- •4.7. Команда cls и echo
- •4.8. Команда del | erase
- •5. Литература
Листинг 12. ПроцедураDir
3.13. Команда invertcolor
Данная команда позволяет программно сменить(инвертировать) цветовую палитру фона интерпретатора а так же его текста.
Алгоритм работы команды:
1. Проверяем флаг инвертирования.
2. Инвертируем цвета согласно значения флага.
3. Устанавливаем состояние инвертирования во флаг.
Код приведен ниже:
if UpperCase(rg.Match[0]) = 'INVERTCOLOR ' then
begin
rg.Expression := '\/\?';
rg.Exec(tl);
if rg.Match[0] = '/?' then
begin
MyWriteln('INVERTCOLOR - Инвертирует цвета консоли');
goto g1;
end
else
begin
if invcolor = False
then
begin
Coord.X := 0; Coord.Y := 0;
FillConsoleOutputAttribute(ConHandle, 4+236, MaxX * MaxY, Coord, NOAW);
SetConsoleTextAttribute(ConHandle,4+236);
invcolor := true;
end
else
begin
Coord.X := 0; Coord.Y := 0;
FillConsoleOutputAttribute(ConHandle, 7+1*0, MaxX * MaxY, Coord, NOAW);
SetConsoleTextAttribute(ConHandle,7+1*0);
invcolor := False;
end;
end;
end;
Листинг 13. Процедура invertcolor
3.14. Разбиение на лексемы, синтаксический анализ, регулярные выражения
Регуля́рные выраже́ния — это формальный язык поиска и осуществления манипуляций с подстрокамив тексте, основанный на использовании метасимволов (символов-джокеров,англ.wildcard characters). По сути это строка-образец (англ.pattern, по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска.
Регулярные выражения произвели прорыв в электронной обработке текстов в конце XX века. Набор утилит (включая редакторsedи фильтрgrep), поставляемых вдистрибутивахUNIX, одним из первых способствовал популяризации регулярных выражений для обработки текстов. Многие современныеязыки программированияимеют встроенную поддержку регулярных выражений. Среди нихActionScript,Perl,Java[1], PHP,JavaScript,языки платформы.NET Framework[2], Python,Tcl,Ruby,Lua,Gambas,C++(стандарт2011года) и др. Регулярные выражения используются некоторымитекстовыми редакторамииутилитамидля поиска и подстановки текста. Например, при помощи регулярных выражений можно задать шаблоны, позволяющие:
найти все последовательности символов «кот» в любом контексте, как то: «кот», «котлета», «терракотовый»;
найти отдельно стоящее слово «кот» и заменить его на «кошка»;
найти слово «кот», которому предшествует слово «персидский» или «чеширский»;
убрать из текста все предложения, в которых упоминается слово кот или кошка.
Регулярные выражения позволяют задавать и гораздо более сложные шаблоны поиска или замены.
При выполнении курсовой работы командная строка может иметь любой вид, главное в ней точное указание ключей параметров, их месторасположение значения не имеет:
команда [параметр] [> имя ф] [ключи]
Командная строка состоит из полей, разделенных пробелами (лексем). Все поля, кроме первого (название команды) могут отсутствовать, поэтому их названия заключены в квадратные скобки.
Команда - одна из набора допустимых. Набор допустимых команд определен в синтаксисе регулярного выражения:
Read(tl);
rg.Expression := 'HELP |INVERTCOLOR |ATTRIB |DATE |CD |DIR |TIME |CLS |ECHO |MKDIR |RD |TYPE |DEL |ERASE |SORT |OUTPUT ';
command := tl+' ';
rg.Exec(UpperCase(command));
if rg.Match[0] = '' then
begin
MyWriteln('Не правильно введена команда');
end;