Разбитие строки на подстроки
10.06.2003
11:48
#1
Люди, есть ли в 1С функция типа split в перле?<br><br>Т.е. возвращающая список подстрок, полученных из исходной строки по разделителю.<br><br>Нужно файлик с табличкой импортировать в 1С, соотв-но нужны значения столбцов, разделенных ,скажем, табуляцией.
10.06.2003
15:43
#2
"Вобщем если кому интересно, я сваял аналог split:<br><br><br><br>//******************************************************************************<br><br>// СтрРазбить(<Разделитель>,Строка,СписокПодстрок)<br><br>//<br><br>// Параметры: <br><br>// Разделитель - необязательный параметр,символ разделитель, <br><br>// по которому Строка разбивается на подстроки. <br><br>// Если не задан в СписокПодстрок возвращается<br><br>// список символов строки.<br><br>// Строка - исходная строка.<br><br>// СписокПодстрок - переменная типа "СписокЗначений",<br><br>// в которую возвращается список подстрок.<br><br>//<br><br>// Возвращаемое значение:<br><br>// длина возвращаемого списка<br><br>//<br><br>// Описание:<br><br>// Разделяет строку символов на подстроки по указанному разделителю <br><br>//<br><br>Функция СтрРазбить(Разд="""",Строчка=0,Список=0)<br><br> <br><br> если (Строчка=0) или (Список=0) тогда<br><br> Сообщить("Слишком мало параметров!");<br><br> возврат 0;<br><br> конецЕсли; <br><br> <br><br> колво=0;<br><br> Стр=Строчка;<br><br> Список = СоздатьОбъект("СписокЗначений");<br><br> Список.УдалитьВсе();<br><br> ЧС = ?(СтрДлина(Разд)=0,1,0); <br><br> итераций = ?(ЧС=1,СтрДлина(Строчка),СтрЧислоВхождений(Строчка,Разд)+1);<br><br> для ит=1 по итераций цикл<br><br> РаздПоз = ?(ЧС=1,2,Найти(Стр,Разд));<br><br> Если РаздПоз>0 тогда<br><br> Поз = РаздПоз-1;<br><br> подстр = Лев(Стр,Поз);<br><br> Если ЧС=1 тогда<br><br> Поз=1;<br><br> конецЕсли;<br><br> Стр = Прав(Стр,СтрДлина(Стр)-(Поз+СтрДлина(Разд)));<br><br> иначе<br><br> //последняя итерация<br><br> подстр=Стр;<br><br> конецЕсли;<br><br> Если СтрДлина(подстр)>0 тогда<br><br> колво=колво+1;<br><br> Список.ДобавитьЗначение(подстр,колво);<br><br> конецЕсли;<br><br> конецЦикла;<br><br> <br><br> возврат колво;<br><br> <br><br>конецФункции // конец функции СтрРазбить"
Читают тему
(гостей: 1)