helpf.pro
Регистрация
 +1 
Распечатать

Функция расщепляет строку на подстроки, используя заданный разделитель

глРазложить(Стр,Разделитель)
Параметры:
Стр - строка, которую необходимо разложить на подстроки.
Параметр передается по значению.
Разделитель - строка-разделитель, по умолчанию - запятая.

Возвращаемое значение:
список значений, элементы которого - подстроки

Описание:
Функция "расщепляет" строку на подстроки, используя заданный разделитель.
Разделитель может иметь любую длину.
Если в качестве разделителя задан пробел, рядом стоящие пробелы
считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
игнорируются.

Пример:
глРазложить(",ку,,,му", ",") возвратит список значений из пяти элементов,
три из которых - пустые строки, а
глРазложить(" ку му", " ") возвратит список значений из двух элементов

Код 1C v 7.x
 
Функция глРазложить(Знач Стр, Разделитель = ",") Экспорт
СЗ = СоздатьОбъект("СписокЗначений");
Если Разделитель = " " Тогда
Стр = СокрЛП(Стр);
Пока 1=1 Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
СЗ.ДобавитьЗначение(Стр);
Возврат СЗ;
КонецЕсли;
СЗ.ДобавитьЗначение(Лев(Стр,Поз-1));
Стр = СокрЛ(Сред(Стр,Поз));
КонецЦикла;
Иначе
ДлинаРазделителя = СтрДлина(Разделитель);
Пока 1=1 Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
СЗ.ДобавитьЗначение(Стр);
Возврат СЗ;
КонецЕсли;
СЗ.ДобавитьЗначение(Лев(Стр,Поз-1));
Стр = Сред(Стр,Поз+ДлинаРазделителя);
КонецЦикла;
КонецЕсли;
КонецФункции



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

Пример использования функции глРазложить
Разместил:   Версии: | 7.x | 8.x |  Дата:   Прочитано: 36937
 +1 
Распечатать
Возможно, вас также заинтересует
Выбор оптимального алгоритма для разбора строки в массив 0
Столкнулся с проблемой: ПолучитьСтрокуПоНомеру() медленно отрабатывает на входных данных 100 000 строк. Как сделать бытсрее? // Пример Defender aka LINN ВремяНачала = ТекущаяДата(); Сообщить(" Обработка начата: " + ВремяНачала); ТЗ = Новый Та
Выгрузка / Загрузка данных посредством текстовых (TXT) файлов 5
Для работы с текстовыми документами существуют три типа данных – ТекстовыйДокумент, ЗаписьТекста и ЧтениеТекста . Разница двух подходов состоит в способе загрузки документа: ТекстовыйДокумент загружает файл целиком и далее построчно обрабатывает е
Выгрузка результата запроса в текстовый файл с разделителями 1
Запрос = Новый Запрос(); Запрос.УстановитьПараметр(" ДатаНач" ,НачалоДня(ДатаНач)); Запрос.УстановитьПараметр(" ДатаКон" ,КонецДня(ДатаКон)); Запрос.УстановитьПараметр(" Организация" ,Организация); Запрос.Текст = " ВЫБРАТЬ | ПоступлениеТоваровУ
ДеревоЗначений в ТекстовыйДокумент 3
// Выводит данные ДереваЗначений в ТекстовыйДокумент, пригодный к рассмотрению в отладчике, окне сообщений и показу. // // Параметры: // рВетка - дерево значений, подлежащее выводу. Может иметь почти любую глубину иерархии, количество и тип ко
Загрузить данные в 1с из текстового файла с разделителями 8
В этой статье я расскажу, как загружать данные в 1с 8 из простейших текстовых файлов с разделителями. Обычно они имеют расширение csv (Comma-Separated Values). Т. е. название подразумевает, что в каждой строке такого текстового файла значения разделе
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.