Имя: Пароль:
1C
 
v8: Подскажите функцию разбивки строки
0 manyak
 
20.10.08
08:04
есть ли в 1с аналог VB функции split, возвращает массив созданный на основе строки разбитой на элементы заданным разделителем?
1 wise
 
20.10.08
08:17
а что МЕШАЕТ написать САМОМУ ?? эту ЧУДНУЮ функцию...
2 manyak
 
20.10.08
08:29
в 7-ке вроде была какая-то функция типа получается обьект многострочный текст и можно к каждой строке по индексу обращаться, помню видел пример обработки текст. файла, а вот что за функция не помню
3 manyak
 
20.10.08
08:30
не хочу изобретать велосипед
4 Ursus maritimus
 
20.10.08
08:31
СтрЗаменить, СтрЧислоСтрок, СтрПолучитьСтроку тебе помогут
5 MSOliver
 
20.10.08
08:31
если в качестве разделителя строк используется "разделитель строк" есть штатная)
6 manyak
 
20.10.08
08:33
оно - спасибо :), заменю разделитель на "символы.пс" и вперед!
7 Hitcher
 
20.10.08
09:36
Не это, часом? Взято из типовой УТ

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