Работа со строками

Материал из GEOS_WIKI
Перейти к: навигация, поиск

В данном разделе представлены функции K3 для работы со строками.

Длина строки

INT Len(STRING <Str>)

Функция возвращает длину строки <Str> в символах

Пример:

=Len("Иванов");
6
=Len("");
0

Заглавные и строчные символы

STRING Upper(STRING <Str>)

Функция преобразует все буквы строки <Str> в заглавные.


STRING Lower(STRING <Str>)

Функция преобразует все буквы строки <Str> в строчные.


LOGICAL IsUpper(STRING <Str>)

Функция проверяет, является ли первый символ строки <Str> заглавной буквой.


LOGICAL IsLower(STRING <Str>)

Функция проверяет, является ли первый символ строки <Str> строчной буквой.

Пример:

=Upper("Иванов C.В.");
"ИВАНОВ С.В."
=Lower("Иванов C.В.");
"иванов с.в."
=IsUpper("Иванов C.В.");
1
=IsLower("Иванов C.В.");
0
=IsUpper("1");
0
=IsLower("1");
0

Обрезка пробелов

STRING LTrim(STRING <Str>)

Функция обрезает в строке пробелы слева


STRING RTrim(STRING <Str>)

Функция обрезает в строке пробелы справа


STRING Trim(STRING <Str>)

Функция обрезает пробелы и слева и справа

Пример:

=LTrim("  ABC  ");
"ABC  "
=RTrim("  ABC  ");
 "  ABC"
=Trim("  ABC  ");
"ABC"

Символы подряд

STRING Left(STRING <Str>, INT <N>)

Функция возвращает <N> первых символов строки <Str>


STRING Right(STRING <Str>, INT <N>)

Функция возвращает <N> последних символов строки <Str>


STRING Mid(STRING <Str>, INT <N>[, int <M>])

Функция возвращает подстроку в строке <Str> длиной <M>, начиная с позиции <N>. Если <M> опущено, возвращается один символ.

Пример:

=Left("ABCDEF",4);
"ABCD"
=Right("ABCDEF",3);
"DEF"
=Mid(“ABCDEF”,3);
“C”
=Mid(“ABCDEF”,3,2);
“CD”

Значение числа

DOUBLE Val(STRING <Str>)

Считается, что символы строки <Str> описывают число. Функция возвращает значение этого числа.

Пример:

=Val("132.75");
132.75

Преобразование выражения в строку

STRING Str(VARIANT <Expr>[, INT <Size>[, INT <Prec>]])

Функция преобразует выражение <Expr> в строку. Выражение может быть любого типа.

Для числа возвращает строку с символами числа. При этом могут быть использованы необязательные параметры:

<Size> — количество символов в выходной строке. Если их больше, чем требуется для вывода числа, выходная строка дополняется пробелами слева.

<Prec> — количество знаков после десятичной точки.

Если входной параметр является строкой — она же и возвращается.

Для многострочного текста возвращается первая строка.

Для объекта возвращается название типа объекта.

Пример:

=Str(pi());
"3.142"
=Str(pi(),10)
"     3.142"
=Str(pi(),10,5)
"   3.14159"
=Str(5)
"5"
=Str(5,10)
"5"
=Str(5,10,5)
"   5.00000"
=Str("ABC")
"ABC"
#p1 point 10, 20, 30;
=Str(p1)
"Точка"

Синтаксический разбор строк

INT SplitByDelim(String <Source>, string <Delim>, Varname array <Arr>[, logical <NotEmpty>])

Функция осуществляет синтаксический разбор строки <Source> на составляющие, разделенные разделителем, заданным строкой <Delim>. Результат заносится в массив <Arr>. Необязательный параметр <NotEmpty> определяет, следует ли (1) или не следует (0) заносить в массив пустые значения. По умолчанию пустые значения в массив не заносятся. Функция возвращает число заполненных элементов массива.

Пример:

defarray a[10];
s="1,2,ff,s=45,,e";
d=",";
=splitbydelim(s,d,a);
5
=a[1];
1
=a[4];
"s=45"
=a[5];
"e"
=splitbydelim(s,d,a,1);
6
=a[5];
""
=a[6];
"e"

Вхождение строки

INT InStr(INT <Start>, STRING <Source>, STRING <Search>, Logical <NoCase>)

Функция находит первое вхождение строки <Search> в строку <Source>, начиная с позиции <Start>. Если <NoCase> равно единице, то поиск осуществляется без учета регистра, иначе — с учетом регистра. Позиции в строке нумеруются начиная с единицы.

Функция возвращает номер позиции, с которой начинается вхождение, иначе функция возвращает ноль.

Форматирование строки

STRING TFormat(STRING <Format>, VARIANT <Par1>[, VARIANT <Par2>[, ...]])

Функция форматирует строку <Format> в соответствие с правилами форматирования строк и параметрами <Par1>, <Par2> и пр.

Допустимые типы форматирования:

для параметра типа число%d и %f
для параметра типа строка%s

Принцип форматирования такой же, как в языках С и пр.