Функции обработки строк

С помощью ARexx-овских функций обработки строк вы можете делать со строками все, на что только хватает фантазии:


CENTER()
str = CENTER(<строка>,<длина>[,<заполнитель>])

Результатом исполнения этой функции будет строка str заданной параметром "длина" длины, содержащая внутри себя отцентрованную строку "строка". Символ "заполнитель" будет использован для заполнения левой и/или правой частей полученной строки. По умолчанию заполнителем является пробел. Пример:

say CENTER('Строчные функции', 22, '*')  ==> ***Строчные функции***

COMPRESS()
str = COMPRESS(<строка>[,<список>])

Исключить из строки все символы, имеющиеся в списке. Если список не указан, из строки удаляются пробелы. Примеры:

say COMPRESS('1 2 3')                       ==> 123
say COMPRESS('Санкт-Петербург','на-терку')  ==> СПбг

COPIES()
str = COPIES(<строка>,<число_повторов>)

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

say COPIES('Привет! ', 3)  ==> "Привет! Привет! Привет! "

DELSTR()
str = DELSTR(<строка>,<старт>[,<длина>])

Функция возвращает строку, соответствующую исходной строке, из которой удалена подстрока, начинающаяся с позиции "старт". Если указан параметр "длина", то будет удалено число литер, соответствующее этому параметру. Если "старт" выходит за пределы исходной строки, то функция ничего не делает. Пример:

say DELSTR('Куртка', 4, 2)  ==> Кура

INSERT()
str = INSERT(<новая>)<старая>[,<старт>][,<длина>][,<заполнитель>])

"Новая" строка вставляется в "старую" строку, начиная с позиции "старт". Если определен параметр "длина", и значение "длины" не совпадает с длиной "новой" строки, то новая строка будет или дополнена литерой "заполнитель" до требуемой длины, или обрезана. По умолчанию заполнителем является пробел. Если позиция "старт" находится за пределами "старой" строки, то эта строка будет дополнена литерами-заполнителями до требуемой длины. Если параметр "старт" равен нулю, либо отсутствует вовсе, то вставка осуществляется в начало "старой" строки. Пример:

say INSERT(' дорогой','Здравствуй, друг!', 11)  ==> "Здравствуй, дорогой друг!"

LEFT()
str = LEFT(<строка>,<длина>[,<заполнитель>])

Функция возвращает строку длиной, соответствующей параметру "длина", вырезанную из начальной части исходной строки. Если указанная длина превышает длину исходной строки, то полученная строка дополняется справа литерами заполнителя до требуемой длины. По умолчанию заполнителем является пробел. Примеры:

say LEFT ('Микросхема', 5)   ==> Микро
say LEFT ('ARexx', 8, '!')   ==> ARexx!!!

LENGTH()
len = LENGTH(<строка>)

Функция возвращает число литер в строке.


OVERLAY()
str = OVERLAY(<новая>,<старая>[,<старт>][,<длина>][,<заполнитель>])

"Новая" строка замещает литеры "старой" строки, начиная с позиции "старт". Если определен параметр "длина", и значение "длины" не совпадает с длиной "новой" строки, то новая строка будет или дополнена литерой "заполнитель" до требуемой длины, или обрезана. По умолчанию заполнителем является пробел. Если позиция "старт" находится за пределами "старой" строки, то эта строка будет дополнена литерами-заполнителями до требуемой длины. Если параметр "старт" равен нулю, либо отсутствует вовсе, то замещение осуществляется с начала "старой" строки. Пример:

say OVERLAY ('000', '123456789', 3)  ==>  "123000789"

REVERSE()
str = REVERSE(<строка>)

Функция возвращает "зеркальное отражение" строки. Пример:

say REVERSE('12345')  ==> 54321

RIGHT()
str = RIGHT(<строка>,<длина>[,<заполнитель>])

Функция возвращает строку длиной, соответствующей параметру "длина", вырезанную из концевой части исходной строки. Если указанная длина превышает длину исходной строки, то полученная строка дополняется слева до требуемой длины литерами заполнителя. По умолчанию заполнителем является пробел. Примеры:

say RIGHT('Микросхема', 5)   ==> схема
say RIGHT('ARexx', 8, '!')   ==> !!!ARexx

STRIP()
str = STRIP(<строка>,[,[{'B'|'L'|'T'}][,<список>])

Функция по умолчанию удаляет пробелы (если задан параметр "список", то удаляются все литеры, имеющиеся в списке) из начала, конца или обеих сторон исходной строки (по умолчанию - с обеих сторон). Тип удаления идентифицируется необязательным вторым параметром функции:

В  - (Both)     - с обеих сторон;
L  - (Leasing)  - предшествующие;
Т  - (Trailing) - замыкающие.    

Примеры:

say STRIP(' Привет')               ==> "Привет"
say STRIP(' Привет-', 'B', ' -')   ==> "Привет"
say STRIP(' Привет-', 'T', ' -')   ==> " Привет"

SUBSTR()
str = SUBSTR(<строка>|<старт>[,<длина>[,<заполнитель>]])

Результатом исполнения этой функции будет строка "str" заданной параметром "длина" длины, выделенная из исходной строки, начиная с позиции "старт". Символ "заполнитель" будет использован в том случае, если в результате получится более короткая строка, нежели задано параметром "длина". По умолчанию заполнителем является пробел. Если параметр "длина" отсутствует, то результатом исполнения функции явится вся правая часть исходной строки, начиная с позиции "старт". Примеры:

say SUBSTR('СевЗапСнабСбыт', 4)            ==> ЗапСнабСбыт 
say SUBSTR('СевЗапСнабСбыт', 7, 11, '!')   ==> ЗапСнабСбыт!!!
say SUBSTR('СевЗапСнабСбыт', 7, 4)         ==> Снаб

TRANSLATE()
str = TRANSLATE(<строка>[,<выходной_список>] [,<входной_список>][,<заполнитель>])

Несмотря на многообещающее название эта функция вряд ли сможет достойным образом перевести строку, скажем, с английского на русский (зато запросто - из MS-DOS формата в амиговский или наоборот). Здесь происходит вот что: все литеры исходной строки, обнаруженные во "входном списке", заменяются на соответствующие им литеры "выходного списка". Если в строке есть какие-либо литеры, отсутствующие во входном списке, то они заменяются на "заполнитель". Если в списке параметров присутствует только строка, то все ее буквы переводятся в заглавный регистр по аналогии с функцией UPPER(). Пример:

say TRANSLATE('abcd', '1234', 'abcd')   ==> 1234

TRIM()
str = TRIM(<строка>)

Результатом работы функции будет <строка> без концевых пробелов.


UPPER()
str = UPPER(<строка>)

Результатом работы функции будет "строка", все буквы которой находятся в заглавном регистре. Для правильной работы с русскими буквами в вашей системе должен быть установлен русификатор 5-й версии или новее.


XRANGE()
str = XRANGE(<начало>,<конец>)

Результатом работы функции будет строка, состоящая из литер, находящихся в ASCII-таблице между литерой "начало" и литерой "конец" (начальная и концевая литеры включаются в полученную строку). При использовании XRANGE для русских строк, учтите, что твердый знак вынесен в конец русского алфавита (см. таблицу символов Амиги). Пример:

say XRANGE('п', 'ъ')   ==> прстуфхцчхшщыьэюяъ

Сайт создан в системе uCoz