Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Сравнение строк





Сравнение строк намного сложнее и разнообразнее, чем сравнение чисел. В Visual Basic строка равна другой строке только в том случае, если обе строки содержат точно столько же, точно такие же символы, в том же самом порядке. Это похоже на сравнение чисел, которые содержат одинаковое количество цифр, одинаковые цифры, следующие друг за другом в одинаковом порядке. Например:

Сравнение строк Результат Сравнение чисел Результат
"abcde" = "abcde" True 12345 = 12345 True
"abcde" = "abced" False 12345 = 12354 False

Обратите внимание на то, что изменение порядка следования последних двух символов (и цифр) приводит к результату False. Почему так получается с числами, видимо, понятно. А теперь, поверьте, что то же самое происходит и со строками. И вот почему. Каждый символ в строке (и не только в строке, а вообще в памяти компьютера) представляется в виде числа — кода символа в некоторой кодировке. Например, в кодировке ANSI (American National Standards Institute) латинский символ "A" имеет код 65, "B" — 66 и так далее; "Z" — 90. Символы цифр также имеют коды, например, символу "1" соответствует код 49. Далее, каждый символ занимает позицию в строке (как цифра в десятичном, например, числе занимает десятичную позицию). Все остальное, как у чисел: для двух строк сравнивается код каждого символа в одинаковых позициях.

Строки (в отличие от чисел) могут содержать в качестве символов пробелы (пробелу соответствует код в некоторой кодировке). Поэтому следующий пример может иметь место:

"abcde" = "abcd e" ' результат: False

В качестве примеров сравнения строк можно привести и следующие выражения:

Сравнение Результат
"aabbc" > "aabbb" True, так как числовой код последнего символа первой строки (с) на единицу больше, чем числовой код последнего символа второй строки (b).
"aabb " > "aabb" True, так как первая строка длиннее.
"aabbс" > "aabb" True, так как первая строка длиннее.
"12345" > "12345 " True, так как первая строка длиннее на один символ пробела.
"12345" > "1234 5" True, несмотря на то, что вторая строка длиннее. Сравнение закончилось на пятом символе: символ "5" имеет код 53 (ANSI), а символ пробела - 32.

Типы сравнения строк

В Visual Basic имеется оператор (модульного уровня), с помощью которого можно устанавливать тип сравнения строк:

Option Compare type

Здесь аргумент type может принимать три значения: Binary, Text или Database. Если оператор в тексте модуля (перед первой процедурой) не используется, то по умолчанию выполняется сравнение строк для типа Binary.

Типу Binary соответствует двоичное сравнение строк, при котором учитывается регистр символа. Так как символы (буквы) верхнего регистра расположены в алфавитном порядке (в ANSI и любом другом наборе) перед символами нижнего регистра, их коды меньше, чем коды символов нижнего регистра. Например, код символа «G»71, а символа «g»103. Поэтому в результате работы следующего кода будет выдано окно сообщения с текстом «True»:

1 Option Compare Binary 'здесь необязательный оператор

3 Private Sub Form_Load()

4 MsgBox ("GGa" < "gGa")

5 End Sub

Если заменить слово Binary в первой строке на Text, то различие в регистрах будет игнорировано и в результате работы кода в окне сообщения появится текст «False».

При использовании в операторе Option Compare ключевого слова Database выполняется сравнение, основанное на информации из базы данных Microsoft Access.

Операция Like

Операция Like используется для сравнения двух строк и имеет следующий синтаксис:

Синтаксис

strExp Like srtPattern

Здесь strExp — строковое выражение; srtPattern — любое строковое выражение, образующее шаблон, который сравнивается с аргументом strExp. В простейшем случае srtPattern — строка, которая полностью совпадает со строкой strExp.

Например, следующее выражение имеет результатом значение True:

"ABCD" Like "ABCD"

Используя некоторые специальные символы, можно сформировать шаблон, который совместно с аргументом strExp даст значение True в выражении с операцией Like. Рассмотрим эти специальные символы и их действие.

Символ «*» используется для обозначения любого количества любых символов. Например, следующее выражение имеет результатом значение True:

"ABCDas" Like "AB*"

Символ «?» позволяет не рассматривать в строке strExp единственный символ, положение которого совпадает с положением символа «?» в шаблоне. Например:

"ABCDss" Like "ABC?ss" ' результат - True

"ABCDss" Like "ABC??s" ' результат - True

Символ «#» отличается от «?» тем, что допускает в строке strExp единственный символ цифры, положение которого совпадает с положением символа «#» в шаблоне. Например:

"ABCDss" Like "ABC?#s" ' результат - False

"ABCD3s" Like "ABC?#s" ' результат - True

В шаблоне для некоторой позиции можно указать диапазон допустимых символов. Диапазон указывается при помощи квадратных скобок, внутри которых задается диапазон символов. Например:

"AFCD3s" Like "A[D-M]C?#s" ' результат - True

"AFCD3s" Like "A[D-M][B-D]?#s" ' результат - True

Если перед диапазоном вставить символ «!», это будет означать, что символ не должен быть внутри диапазона. Например:

"AFCD3s" Like "A[D-M][!D-Z]?#s" ' результат - True

Date: 2015-09-02; view: 334; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию