Символьні дані 1

2.Операціі і функції для роботи з символьними даними

1.Сімвольние дані

Нагадаємо, що за замовчуванням дані строкового типу мають змінну довжину і можуть подовжуватися (до довжини в 2 ^ 31 символів) або зменшуватися. Однак такі рядки займають на 10 байт пам'яті більше, тому можна оголосити рядки фіксованої довжини, явно вказавши кількість символів.

Dim s as String * 20

Якщо кількість символів буде менше оголошеного, то вільні місця заповнюються пробілами, при спробі занесення більшої кількості символів зайві відкидаються.

2.Операціі і функції для роботи з символьними даними

Єдина операція, що застосовується при роботі з рядками - конкатенація. Зате вбудованих функцій для роботи достатньо багато:

Порівняння двох рядків. Функція StrComp повертає значення типу Variant (Integer), яке представляє результат порівняння рядків.

StrComp (string1, string2 [, compare])

Синтаксис функції StrComp містить наступні аргументи:

string1 - Обов'язковий. Будь-яке допустиме строкове вираження.

string2 - Обов'язковий. Будь-яке допустиме строкове вираження.

compare - Необов'язковий. Вказує спосіб порівняння рядків. Аргумент compare може бути опущений або мати значення 0, 1 або 2. Щоб виконати двоичное порівняння, слід вказати 0 (це значення використовується за умовчанням). Щоб виконати посимвольного порівняння без урахування регістру, слід вказати 1. Якщо аргумент compare опущений, спосіб порівняння рядків визначається значенням параметра інструкції Option Compare.

string1 менше ніж string2 -1

string1 дорівнює string2 0

string1 більше ніж string2 1

Dim MyStr1, MyStr2, MyComp

MyStr1 = "ABCD": MyStr2 = "abcd" 'Визначає змінні.

MyComp = StrComp (MyStr1, MyStr2, 1) 'Повертає 0.

MyComp = StrComp (MyStr1, MyStr2, 0) 'Повертає -1.

MyComp = StrComp (MyStr2, MyStr1) 'Повертає 1.

Вибір типу порівняння рядків. Застосовується на рівні модуля для завдання використовується за умовчанням способу порівняння строкових даних.

Інструкція Option Compare при її використанні повинна знаходитися в модулі перед будь процедурою і вказує спосіб порівняння рядків (Binary або Text) для модуля. Якщо модуль не містить інструкцію Option Compare, за замовчуванням використовується метод порівняння Binary

Інструкція Option Compare Binary задає порівняння рядків на основі порядку сортування, що визначається внутрішнім двійковим поданням символів. У Microsoft Windows порядок сортування визначається кодовою сторінкою символів. У наступному прикладі представлений типовий результат двійкового порядку сортування:

A

Інструкція Option Compare Text задає порівняння рядків без урахування регістру символів на основі системної національної настройки. Тим же символам, що і вище, при сортуванні з інструкцією Option Compare Text відповідає наступний порядок:

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

Перетворення рядків. Функція StrConv має следующи синтаксис:

Тут string - рядковий вираз, яке слід перетворити, conversion - значення типу Integer, Сума значень, які вказують тип перетворення, яке слід виконати.

vbUpperCase 1 Перетворення рядка до верхнього регістру.

vbLowerCase 2 Перетворення рядка до нижнього регістру.

vbProperCase 3 Перетворення першої літери кожного слова в рядку в прописну.

Замість однієї цієї функції можна застосовувати функції Lcase, Ucase.

Lcase - повертає значення типу String, що представляє рядок, перетворену до нижнього регістру.

Обов'язковий аргумент рядок представляє будь-яке припустиме строкове вираження. Якщо рядок має значення Null, повертається значення Null.

До нижнього регістру перетворюються лише великі літери; малі літери та інші символи залишаються незміненими.

Ucase - повертає значення типу Variant (String), що містить рядок, перетворену до верхнього регістру.

Обов'язковий аргумент рядок представляє будь-яке припустиме строкове вираження. Якщо рядок має значення Null, повертається значення Null.

До верхнього регістру перетворюються тільки малі літери; великі літери та інші символи залишаються незмінними.

Створення рядків, що містять повторювані символи. Для створення таких рядків застосовують функції Space і String. Функція Space (число) формує рядок, а обов'язковий аргумент число вказує необхідну кількість прогалин в рядку. Її зручно використовувати для форматування і очищення даних в рядках фіксованої довжини.

Функція String (number, character) містить наступні аргументи:

number - Значення типу Long. Довжина повертається рядка.

character - Значення типу Variant. Код символу або строкове вираження, перший символ якого використовується при створенні повертається рядка.

Визначення довжини рядка. При роботі з рядками змінної довжини зручно використовувати функцію Len (рядок), повертаючись значення типу Long, що містить число символів в рядку

Вирівнювання рядки. Оператор Lset - вирівнює рядок по лівому краю строкової змінної або копіює змінну одного визначається користувачем тип в змінну іншого типу, також певного користувачем.

LSet змінна = рядок

LSet імяПеременной1 = імяПеременной2

Тут рядок - рядковий вираз, яке слід вирівняти по лівому краю рядка змінна. Все решта символи в рядку змінна LSet замінює на прогалини. Якщо рядок довший, ніж змінна, LSet копіює в змінну стільки початкових символів рядка, скільки в ній поміститься.

Rset - те ж саме, але вирівнює рядок по правому краю строкової змінної. Якщо довжина рядка змінна більше, ніж рядок, інструкція RSet замінює все решта символи аж до початку рядка змінна пробілами.

Обробка рядків. Для різноманітної обробки рядків застосовуються функції InStr, Left, LTrim, Mid, Right, RTrim, Trim.

InStr - Повертає значення типу Long, яке вказує позицію першого входження одного рядка всередині іншого рядка.

InStr ([start,] string1, string2 [, compare])

Синтаксис функції InStr містить наступні аргументи:

start - числове вираження, що задає позицію, з якої починається кожен пошук. Якщо цей аргумент опущений, пошук починається з першого символу рядка. Вказівка ​​аргументу start є обов'язковим, якщо вказано аргумент compare.

string1 - Рядковий вираз, в якому виконується пошук.

string2 - Шукане строкове вираження.

compare - Вказує спосіб порівняння рядків. Аргумент compare може бути опущений або мати значення 0 або 1. Щоб виконати двоичное порівняння, слід вказати 0 (це значення використовується за умовчанням). Щоб виконати посимвольного порівняння без урахування регістру, слід вказати 1. Якщо аргумент compare опущений, спосіб порівняння рядків визначається значенням параметра інструкції Option Compare.

string1 є символом нового рядка 0

string2 є символом нового рядка start

string2 не знайдено 0

string2 знайдена в string1 Позиція виявленої подстроки

start> string2 0

Left - повертає значення типу String, що містить вказане число перших символів рядка.

Тут string - рядковий вираз, з якого здобуваються символи. length - значення типу Variant (Long), числове вираз, що вказує число повертаються символів. Якщо 0, повертається порожній рядок ( ""). Якщо значення length більше або дорівнює числу символів в рядку string, повертається вся рядок.

Для визначення числа символів в рядку string слід використовувати функцію Len.

Ltrim, Rtrim, Trim - повертають значення типу String, що містить копію рядка, з якої вилучені пропуски, що знаходилися на початку рядка (LTrim), в кінці рядка (RTrim) або на початку і кінці рядка (Trim).

LTrim (рядок), RTrim (рядок), Trim (рядок)

Обов'язковий аргумент рядок представляє будь-яке припустиме строкове вираження.

Mid - Повертає значення типу Variant (String), що містить вказане число символів рядка.

Mid (string, start [, length])

Тут string - рядковий вираз, з якого здобуваються символи, start - значення типу Long. Позиція символу в рядку string, з якого починається потрібна подстрока. Якщо start більше числа символів в рядку string, функція Mid повертає порожній рядок ( "").

length - значення типу Variant (Long). Число повертаються символів. Якщо цей аргумент опущений або перевищує число символів, розташованих праворуч від позиції start, то повертаються всі символи від позиції start до кінця рядка.

Right - Повертає значення типу String, що містить вказане число останніх символів рядка.

Тут string - рядковий вираз, з якого здобуваються символи. length - значення типу Variant (Long). Числове вираз, що вказує число повертаються символів. Якщо 0, повертається порожній рядок ( ""). Якщо перевищує число символів в рядку string, повертається вся рядок.

Робота з кодами ASCII.

Asc - Повертає значення типу Integer, що представляє код символу для першого символу рядка.

Аргумент рядок є будь-яким допустимим строковим виразом. Якщо рядок не містить символів, виникає помилка виконання. Значення, що повертаються лежать в діапазоні 0 - 255.

Chr - повертає значення типу String, що містить символ, відповідний вказаним кодом символу.

Обов'язковий аргумент кодСімвола є значенням типу Long, визначальним символ.

Коди 0-31 відповідають стандартним керуючим символам ASCII. Наприклад, Chr (10) повертає символ перекладу рядка. Звичайним діапазоном значень аргументу кодСімвола є інтервал 0-255.

Приклад: Замінити в рядку літери А, Б, В на 1, 2, 3 відповідно

Dim s As String, sn As String, t As String

Dim l As Integer, i As Integer