Разбитие строки на подстроки

Новая тема
Люди, есть ли в 1С функция типа split в перле?

Т.е. возвращающая список подстрок, полученных из исходной строки по разделителю.

Нужно файлик с табличкой импортировать в 1С, соотв-но нужны значения столбцов, разделенных ,скажем, табуляцией.
"Вобщем если кому интересно, я сваял аналог split:



//******************************************************************************

// СтрРазбить(<Разделитель>,Строка,СписокПодстрок)

//

// Параметры:

//  Разделитель - необязательный параметр,символ разделитель,

// по которому Строка разбивается на подстроки.

// Если не задан в СписокПодстрок возвращается

// список символов строки.

//  Строка - исходная строка.

//  СписокПодстрок - переменная типа "СписокЗначений",

// в которую возвращается список подстрок.

//

// Возвращаемое значение:

//  длина возвращаемого списка

//

// Описание:

// Разделяет строку символов на подстроки по указанному разделителю

//

Функция СтрРазбить(Разд="""",Строчка=0,Список=0)



если (Строчка=0) или (Список=0) тогда

Сообщить("Слишком мало параметров!");

возврат 0;

конецЕсли;                                    



колво=0;

Стр=Строчка;

Список = СоздатьОбъект("СписокЗначений");

Список.УдалитьВсе();

ЧС = ?(СтрДлина(Разд)=0,1,0);

итераций = ?(ЧС=1,СтрДлина(Строчка),СтрЧислоВхождений(Строчка,Разд)+1);

для ит=1 по итераций цикл

РаздПоз = ?(ЧС=1,2,Найти(Стр,Разд));

Если РаздПоз>0 тогда

Поз = РаздПоз-1;

подстр = Лев(Стр,Поз);

Если ЧС=1 тогда

Поз=1;

конецЕсли;

Стр = Прав(Стр,СтрДлина(Стр)-(Поз+СтрДлина(Разд)));

иначе

//последняя итерация

подстр=Стр;

конецЕсли;

Если СтрДлина(подстр)>0 тогда

колво=колво+1;

Список.ДобавитьЗначение(подстр,колво);

конецЕсли;

конецЦикла;



возврат колво;



конецФункции   // конец функции СтрРазбить"
Читают тему
(гостей: 1)

Быстрый переход