
Лабораторная работа №6 Работа с символьными данными
Цель: Освоить работу со строковыми данными в среде VBA.
Данные строкового типа имеют переменную длину и могут удлиняться или укорачиваться. Однако такие строки занимают на 10 байт памяти больше, поэтому можно объявить строки фиксированной длины, явно указав количество символов.
Dim s as String*20
Если количество символов будет меньше объявленного, то свободные места заполняются пробелами, при попытке занесения большего количества символов лишние отбрасываются.
Операции и функции для работы с символьными данными
Единственная операция, применяемая при работе со строками – конкатенация( сцепление строк). Однако, встроенных функций для работы достаточно много:
Действие |
Ключевые слова |
Сравнение двух строк. |
StrComp |
Преобразование строк. |
StrConv |
Изменение регистра. |
Lcase, UCase |
Создание строк, содержащих повторяющиеся символы. |
Space, String |
Определение длины строки. |
Len |
Форматирование строки. |
Format |
Выравнивание строки. |
Lset, RSet |
Обработка строк. |
InStr, Left, LTrim, Mid, Right, RTrim, Trim |
Выбор типа сравнения строк. |
Option Compare |
Работа с кодами ASCII и ANSI. |
Asc, Chr |
1.Сравнение двух строк.
Функция StrComp возвращает значение типа Variant (Integer), представляющее результат сравнения строк.
StrComp(string1, string2[, compare])
Синтаксис функции StrComp содержит следующие аргументы:
string1 - Обязательный. Любое допустимое строковое выражение.
string2 - Обязательный. Любое допустимое строковое выражение.
compare - Необязательный. Указывает способ сравнения строк. Аргумент compare может быть опущен или иметь значение 0, 1. Чтобы выполнить двоичное сравнение, следует указать 0. Чтобы выполнить посимвольное сравнение без учета регистра, следует указать 1. Если аргумент compare опущен, способ сравнения строк определяется значением параметра инструкции Option Compare.
Возвращаемые значения
string1 меньше чем string2 -1
string1 равняется string2 0
string1 больше чем string2 1
Пример 1:
Создайте лист «ЛР6», наберите в окне редактора VBA текст макроса.
Выбор типа сравнения строк.
Применяется на уровне модуля для задания используемого по умолчанию способа сравнения строковых данных.
Option Compare {Binary | Text}
Инструкция Option Compare при ее использовании должна находиться в модуле перед любой процедурой и указывает способ сравнения строк (Binary или Text) для модуля. Если модуль не содержит инструкцию Option Compare, по умолчанию используется способ сравнения Binary
Инструкция Option Compare Binary задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Microsoft Windows порядок сортировки определяется кодовой страницей символов. В следующем примере представлен типичный результат двоичного порядка сортировки:
A < B < E < Z < a < b < e < z < Б < Л < Ш < б < л < ш
Инструкция Option Compare Text задает сравнение строк без учета регистра символов на основе системной национальной настройки. Тем же символам, что и выше, при сортировке с инструкцией Option Compare Text соответствует следующий порядок:
(A=a) < (B=b) < (E=e) < (Z=z) < (Б=б) < (Л=л) < (Ш=ш)