Разложить Строку В Массив Слов
Работа со строками в БСП 3.0
Общий модуль СтроковыеФункцииКлиентСервер
Функции и процедуры общего назначения для работы со строками в БСП 3.0 находятся в общем модуле СтроковыеФункцииКлиентСервер. Для разложения строку в массив слов используется следующий вызов:
МассивСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивСлов( Значение , РазделителиСлов;
Данная функция используется в модуле управления электронной почты и ее назначение – это разбивать строку на несколько строк, используя заданный набор разделителей.
Если параметр РазделителиСлов не задан, то разделителем слов считается любой из символов, не относящихся к символам латиницы, кириллицы, цифры, подчеркивания.
Параметры:
Значение – Строка – исходная строка, которую необходимо разложить на слова.
РазделителиСлов – Строка – перечень символов-разделителей. Например, “.,;”.
Возвращаемое значение:
Массив – список слов.
Пример:
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивСлов("один-@#два2_!три");
// возвратит массив значений: "один", "два2_", "три"; СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивСлов("один-@#два2_!три", "#@!_");
// возвратит массив значений: "один-", "два2", "три". Прграммный код функции:
Функция РазложитьСтрокуВМассивСлов(Знач Значение, РазделителиСлов = Неопределено) ЭкспортСлова = Новый Массив;РазмерТекста = СтрДлина(Значение);НачалоСлова = 1;Для Позиция = 1 По РазмерТекста ЦиклКодСимвола = КодСимвола(Значение, Позиция);Если ЭтоРазделительСлов(КодСимвола, РазделителиСлов) ТогдаЕсли Позиция <> НачалоСлова ТогдаСлова.Добавить(Сред(Значение, НачалоСлова, Позиция - НачалоСлова));КонецЕсли;НачалоСлова = Позиция + 1;КонецЕсли;КонецЦикла;Если Позиция <> НачалоСлова ТогдаСлова.Добавить(Сред(Значение, НачалоСлова, Позиция - НачалоСлова)); КонецЕсли;Возврат Слова;КонецФункции Функция ЭтоРазделительСлов(КодСимвола, РазделителиСлов = Неопределено) ЭкспортЕсли РазделителиСлов <> Неопределено ТогдаВозврат СтрНайти(РазделителиСлов, Символ(КодСимвола)) > 0;КонецЕсли;Диапазоны = Новый Массив;Диапазоны.Добавить(Новый Структура("Мин,Макс", 48, 57)); // цифрыДиапазоны.Добавить(Новый Структура("Мин,Макс", 65, 90));// латиница большие Диапазоны.Добавить(Новый Структура("Мин,Макс", 97, 122)); // латиница маленькие Диапазоны.Добавить(Новый Структура("Мин,Макс", 1040, 1103)); // кириллица Диапазоны.Добавить(Новый Структура("Мин,Макс", 1025, 1025)); // символ "Ё" Диапазоны.Добавить(Новый Структура("Мин,Макс", 1105, 1105)); // символ "ё" Диапазоны.Добавить(Новый Структура("Мин,Макс", 95, 95)); // символ "_"Для Каждого Диапазон Из Диапазоны ЦиклЕсли КодСимвола >= Диапазон.Мин И КодСимвола <= Диапазон.Макс ТогдаВозврат Ложь;КонецЕсли;КонецЦикла;Возврат Истина;КонецФункции
См. также