Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Obrazets.doc
Скачиваний:
21
Добавлен:
10.06.2015
Размер:
3.99 Mб
Скачать

Листинг 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;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]