ObjectARX, AutoCAD. Среда программирования библиотеки C++


Сопоставление подстановочных знаков


AcutWcMatch() функция позволяет приложениям сравнить строку с образцом подстановочных знаков. Это средство может использоваться при формировании набора выборов (в конъюнкции с acedSSGet ()) и при поиске расширенных данных примитива прикладным именем (в конъюнкции с acdbEntGetX ()).

AcutWcMatch () функция сравнивает отдельную строку с образцом, и возвращает RTNORM, если строка соответствует образцу, и RTERROR, если это делает нет.

Образцы подстановочных знаков подобны регулярным выражениям, используемым системой и прикладными программами. В образце, с алфавитными символами и цифры обращаются буквально; скобки могут использоваться, чтобы определить необязательные символы или диапазон символов или цифр; вопросительный знак (?) соответствует единственному символу и звездочка (*) соответствует последовательности символов; уверенный другие специальные символы имеют значения в пределах образца. Для полной таблицы символов, используемых в строках подстановочных знаков, см. описание acutWcMatch ().

В следующих примерах, строковая переменная вызвала matchme,  был объявлен и инициализирован. Следующий запрос проверяет, начинается ли matchme с этих пяти символов “allof”.

if (acutWcMatch(matchme, "allof*") == RTNORM) {

.

.

.

}

Следующий запрос иллюстрирует использование скобок в образце. В этом случае, acutWcMatch () возвращает RTNORM, если matchme равняется “STR1”, “STR2”, “STR3”, или “STR8”.

if (acutWcMatch(matchme, "STR[1-38]") == RTNORM) {

.

.

.

}

 

Строка образца может определить множественные образцы, отделенные запятыми. Следующий запрос возвращает RTNORM, если matchme равняется “ABC”, если это начинается с “XYZ”, или если это заканчивается “123”.

if (acutWcMatch(matchme, "ABC,XYZ*,*123") == RTNORM) {

.

.

.

}

 

AcutWcMatchEx () функция подобна acutWcMatch (), но это имеет дополнительный параметр, чтобы позволить этому игнорировать регистр.

bool

acutWcMatchEx(

const char * string,

const char * pattern,

bool ignoreCase);




Начало  Назад  Вперед