Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

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

mac
читатель
офлайн
Дата регистрации: 06.05.2003
Сообщений: 66
Пост №1
 
10.06.2003 11:48

Люди, есть ли в 1С функция типа split в перле?<br><br>Т.е. возвращающая список подстрок, полученных из исходной строки по разделителю.<br><br>Нужно файлик с табличкой импортировать в 1С, соотв-но нужны значения столбцов, разделенных ,скажем, табуляцией.

mac
читатель
офлайн
Дата регистрации: 06.05.2003
Сообщений: 66
Пост №2
 
10.06.2003 15:43

"Вобщем если кому интересно, я сваял аналог 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>конецФункции // конец функции СтрРазбить"

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация