9 сент. 2016 г.

Разбить строку

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

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

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07