Разложить строку по разделителю в массив подстрок

Разложить строку по разделителю в массив подстрок

По любому выбраннному разделителю разложить строку в массив подстрок можно с помощью функции:

// Функция “расщепляет” строку на подстроки, используя заданный
//      разделитель. Разделитель может иметь любую длину.
//      Если в качестве разделителя задан пробел, рядом стоящие пробелы
//      считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//      игнорируются.
//      Например,
//      РазложитьСтрокуВМассивПодстрок(“,один,,,два”, “,”) возвратит массив значений из пяти элементов,
//      три из которых – пустые строки, а
//      РазложитьСтрокуВМассивПодстрок(” один   два”, ” “) возвратит массив значений из двух элементов
//
//  Параметры:
//      Стр –           строка, которую необходимо разложить на подстроки.
//                      Параметр передается по значению.
//      Разделитель –   строка-разделитель, по умолчанию – запятая.
//
//  Возвращаемое значение:
//      массив значений, элементы которого – подстроки
//
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = “,”) Экспорт
 
 МассивСтрок = Новый Массив();
 Если Разделитель = ” ” Тогда
  Стр = СокрЛП(Стр);
  Пока 1 = 1 Цикл
   Поз = Найти(Стр, Разделитель);
   Если Поз = 0 Тогда
    МассивСтрок.Добавить(Стр);
    Возврат МассивСтрок;
   КонецЕсли;
   МассивСтрок.Добавить(Лев(Стр, Поз – 1));
   Стр = СокрЛ(Сред(Стр, Поз));
  КонецЦикла;
 Иначе
  ДлинаРазделителя = СтрДлина(Разделитель);
  Пока 1 = 1 Цикл
   Поз = Найти(Стр, Разделитель);
   Если Поз = 0 Тогда
    Если (СокрЛП(Стр) <> “”) Тогда
     МассивСтрок.Добавить(Стр);
    КонецЕсли;
    Возврат МассивСтрок;
   КонецЕсли;
   МассивСтрок.Добавить(Лев(Стр,Поз – 1));
   Стр = Сред(Стр, Поз + ДлинаРазделителя);
  КонецЦикла;
 КонецЕсли;
 
КонецФункции