Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Операции сравнения

Операции сравнения являются операциями отношения между данными. Результат операции – логические значения True (Истина) или False (Ложь). Отношения между значениями булевских переменных и переменных типа Date равносильны отношениям между числовыми данными.

Пример

Процедура сравнивает значения двух переменных, которым присвоены значения True и False.

Sub compare_boolean()

Dim A as Boolean, B as Boolean

A=True

B=False

Debug.Print A>B

End Sub

Результат сравнения False. При сравнении логических значений считается, что значению True соответствует -1 а значению False соответствует 0.

Отношения между символьными данными основываются на порядке сортировки символов и знаков, задаваемым инструкцией Option Compare, которая размещается в области Declarations модульного листа. Символы сравниваются попарно слева направо. Могут быть использованы любые знаки операций сравнения.

Инструкция Option Compare Binary задает способ сравнения строковых значений, основанный на внутреннем двоичном представлении символов и соответствует стандартному способу сравнения строк, определяемому кодовой страницей. Например,

A < B < E < Z < a < b < e < z < Б < К < Ш < б < к < ш

Оператор Option Compare Text позволяет задать способ сравнения строковых значений, не принимая в рассмотрение регистр. Например,

(A=a) < (B=b) < (E=e) < (Z=z)< (Б=б) < (К=к) < (Ш=ш)

Оператор Like

Для сравнения символьных строк можно использовать оператор Like, который сравнивает строки с учетом регистра, используя образец сравнения (маску).

Синтаксис оператора string Like pattern

Оба операнда string (строка) и pattern (образец) являются строковыми переменными. Если значение переменной string соответствует значению переменной pattern, результат сравнения True; при их несоответствии результат сравнения False. Если любой из операндов имеет значение Null, результат также равен Null. Подробно см. Help.

Примеры использования оператора Like, приводимые в Help.

Оператор

Результат

Комментарии

"aBBBa" Like "a*a"

True

Любое количество символов между двумя буквами a

"F" Like "[A-Z]"

True

Одна любая прописная латинская буква

"F" Like "[!A-Z]"

False

Один символ, кроме прописных латинских букв

"a2a" Like "a#a"

True

Одна цифра между двумя буквами a

"aM5b" Like "a[L-P]#[!c-e]"

True

После буквы a следует заглавная латинская буква от L до P, затем цифра и любая строчная латинская буква, исключая буквы в интервале от c до e

"BAT123khg" Like "B?T*"

True

После буквы B следует любой символ, после которого буква T и далее любое количество любых символов

"CAT123khg" Like "B?T*"

False

Важно

  • Операнд pattern должен удовлетворять следующим соглашениям:

  • задаваемая маска, как любая символьная строка, заключается в кавычки;

  • можно использовать подстановочные знаки (символы шаблона) и диапазоны символов:

  • звездочка (*) для замены любого количества символов, знак вопроса (?) для замены одного символа и решетка (#) для замены любой цифры от 0 то 9;

  • диапазоны символов задаются в квадратных скобках перечислением или интервалом через дефис. Например, чтобы указать, что образец сравнения есть прописная буква латинского алфавита, используйте маску "[A-Z]". Для указания, что сравниваемое значение не принадлежит диапазону, поставьте перед диапазоном восклицательный знак. Например, маска "[!A-z]" подразумевает, что тестируемое значение не является буквой латинского алфавита.

внимание

  • При задании диапазона значения указываются в алфавитном порядке, т.е. список [ARZ] корректен, а запись [ZAR] не верна.

  • Пустая пара квадратных скобок рассматривается как пустая строка.