Наша команда имеет несколько действующих проектов. Мы оказываем следующие услуги:   Разработка программного обеспечения. Также обслуживаем и автоматизируем программы на платформе 1С. Сайт проекта: moscowsoft.com Разработка графического дизайна: дизайн сайтов, продукции, упаковки, визитки, журналы. Смотрите сайт проекта. Оказание услуг по оформлению праздников и мероприятий: designvanilla.ru.

 

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

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


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

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

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

Реклама

 

 

 Стоматологическое оборудование и расходные материалы