Функции, предназначенные для работы со строками

Операции над строками

Выражения, в которых операндами служат строковые данные, называются строковыми. Над строковыми данными допустимы операции сцепления и операции отношения.

Операция сцепления (конкатенации) «+» применяется для соединения нескольких строк в одну результирующую строку. Сцеплять можно как строковые константы, так и строковые переменные.

Например:

”Бейсик, ” + ”Паскаль, ” + ”Си ” + ”–” + ”языки программирования”.

В результате операции сцепления «+» получится строка:

”Бейсик, Паскаль, Си – языки программирования”

Операции отношения =, <, >, <=, >=, <> позволяют выполнить сравнение двух строк, в результате чего получается логическое значение True или False. Сравнение строк производится слева направо до первого несовпадающего символа, и та строка считается больше, в которой первый несовпадающий символ имеет больший номер в таблице символьной кодировки. Если строки имеют различную длину, но в общей части символы совпадают, считается, что более короткая строка меньше, чем более длинная. Строки равны, если они полностью совпадают по длине и содержат одни и те же символы.

Например:

Выражение Результат
”True1” > ”True2” False
”Student” > ”STUDENT” True
”Студент” <> ” Студент” True
”Группа” = ”Группа” True

Все остальные действия над строками и символами реализуются с помощью встроенных процедур и функций.

Решение подавляющего большинства задач на обработку строковых переменных требует владения встроенными функциями:

Функция (S- строка, X- число) Назначение
Len(S) Возвращает количество символов в строке S Fio=”Иванов”: l=Len(Fio) Результат: l=6
Left(S,k) Возвращает k символов с начала строки Fio=”Иванов”: t=Left(Fio,4) Результат: t=”Иван”
Right(S,k) Возвращает k символов с конца строки Fio=”Иванов”: T=Right(Fio,2) Результат: T=”ов”
Mid(S,Pos,k) Возвращает k символов из переменной S, начиная с позиции Pos, включительно Fio=”Иванов”: T=Mid(Fio,2,4) Результат: T=”вано” Эта функция часто используется для выдаления одного символа из строки: Mid(S,i,1)
Val(S) Преобразует строку S в десятичное число p=”-243.65”: S=Val(p)+100 Результат: S=-143.65
CInt(S) Преобразует строку S в целое число p=”-243”: S=Val(p)+100 Результат: S=-143
Str(X) Преобразует число X в строку символов с учетом знака. Если число положительное, вместо знака ставится пробел. a=123.45: b=-678: S=Str(b)+Str(a) Результат: S=”-678 123.45”
СStr(X) Преобразует числовое выражение X в строку символов. S=СStr(4-7/3) Результат: S=”4-7/3”
Chr(N) Возвращает символ, соответствующий числовому коду в таблице символов For i=65 to 90 Print Chr(i) Результат: Вывод заглавных букв латинского алфавита
Asc(S) Определяет числовой код первого символа в строке S: Print Asc(”123”): Print Asc(” 1a2m”) Print Asc(”ABC”) Результат: 49 32 65
InStr(n,S,S1) Начиная с позиции n, определяет позицию первого появления подстроки S1 в строке S. Если такой подстроки нет, то возвращаемым значением функции будет ноль. S=”кукуруза”: S1=”ку” Print Instr(1,x,y); Print Instr(2,x,y); Результат: 1 3
InStrRev(n,S,S1) Определяет позицию первого появления подстроки S1 в строке S справа налево (начиная с конца строки)
LTrim(S) Удаляет пробелы, расположенные в начале строки
RTrim(S) Удаляет пробелы, расположенные в конце строки
TRim(S) Удаляет пробелы, расположенные в начале и в конце строки
LCase(S) Изменяет регистр букв исходной строки S на нижний
UCase(x) Изменяет регистр букв исходной строки S на верхний
StrConv(S,p) Изменяет регистр букв строки S, в зависимости от значения параметра p p =1, верхний регистр; p =2, нижний регистр; p =3, только первая заглавная
StrReverce(x) Изменяет порядок следования в строке на обратный
Spase(n) Возвращает строку, состоящую из n пробелов
Replase (S,S1,S2,n,k) Заменяет в строке S подстроку S1 на подстроку S2, начиная с позиции n. k - количество замен, если значение k не указано, то заменяются все вхождения S1 в S. Эта функция используется также для удаления подстрок: s1=”121113” Print Replace(s1,”1”,””) ’Удаляется ’подстрока ”1” Результат: 23

Строку символов всегда можно преобразовать в одномерный массив отдельных символов, расщепив ее при помощи функции Mid или Split. После этого со строкой можно работать точно так же как и с одномерным массивом. После обработки массива, его элементы следует обратно слить в строку при помощи операции сцепления.

Функция Split

Функция Split используется для расщепления строки на подстроки с использованием разделителя подстрок. Возвращает эта функция одномерный массив с типом данных Variant (String), содержащий в качестве элементов найденные подстроки.

Формат обращения к функции:

Split(Исходная строка,[Разделитель])

Здесь Исходная строка – строка, которую нужно расщепить (обязательный аргумент). Если аргумент содержит нулевую строку (””), то возвращается пустой массив.

Разделитель– символы типа String, которые используются в качестве разделителя строки (необязательный аргумент). Чаще всего в качестве разделителя используются символы пробел или запятая. Если аргумент опущен, то по умолчанию используется символ пробела (””). Если аргумент содержит нулевую строку (””), то возвращается одноэлементный массив, содержащий исходную строку.

Функция Join

Функция Join выполняет обратное действие – объединяет элементы массива в строку, используя указанный разделитель.

Формат обращения к функции:

Join (Имя массива, [Разделитель])

Оператор Mid

Оператор Mid используется для модификации строк.

Формат обращения к оператору:

Mid(Исходная строка, Позиция [, Длина]) = Замена

Здесь Исходная строка – строка для модификации,

Позиция – позиция символа в исходной строке, с которой начинается замена,

Длина – число заменяемых символов,

Замена – строковое выражение для замены.

Число заменяемых символов всегда меньше или равно числу символов в исходной строке. Не следует путать этот оператор с одноименной функцией!