|
Строка с разделителями. Как преобразовать в массив значений? | ☑ | ||
---|---|---|---|---|
0
planod
29.02.12
✎
14:00
|
Есть текстовая строка: Товар#ЦенаПокупки#ЦенаПродажи
Как получить отдельно товар, отдельно цены. В php есть функция explode() для этого, а как реализовать в 1с? |
|||
1
butterbean
29.02.12
✎
14:01
|
СтрЗаменить(Стр,"#",Символы.ПС), а потом перебрать в цикле
|
|||
2
and2
29.02.12
✎
14:01
|
разложитьстрокуВмассивПодстрок
есть во всех типовых |
|||
3
Kreont
29.02.12
✎
14:02
|
||||
4
ProProg
29.02.12
✎
14:02
|
100 баксов!
Функция мРазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = "|") Экспорт МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1 = 1 Цикл Поз = Найти(Стр,Разделитель); Если Поз = 0 Тогда СтрокаВМассив = СокрЛП(Стр); МассивСтрок.Добавить(СтрокаВМассив); Возврат МассивСтрок; КонецЕсли; СтрокаВМассив = СокрЛП(Лев(Стр,Поз-1)); МассивСтрок.Добавить(СтрокаВМассив); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1 = 1 Цикл Поз = Найти(Стр,Разделитель); Если Поз = 0 Тогда СтрокаВМассив = СокрЛП(Стр); МассивСтрок.Добавить(СтрокаВМассив); Возврат МассивСтрок; КонецЕсли; СтрокаВМассив = СокрЛП(Лев(Стр,Поз-1)); МассивСтрок.Добавить(СтрокаВМассив); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции |
|||
5
PR
29.02.12
✎
14:02
|
Стр = СтрЗаменить(Стр, "#", Символы.ПС);
Для А = 0 По КолСтрок(Стр) - 1 Цикл бла бла бла |
|||
6
ILM
гуру
29.02.12
✎
14:02
|
В типовых есть функция ПреобразоватьСтрокуВМассив(Строка, рзделитель)...
Точное название не помню... Но найду быстро ))) |
|||
7
planod
29.02.12
✎
14:03
|
спасибо) сейчас буду пробовать)
|
|||
8
Ненавижу 1С
гуру
29.02.12
✎
14:04
|
Структура = Новый Структура(СтрЗаменить(Стр,"#",","));
|
|||
9
Рэйв
29.02.12
✎
14:06
|
// Аналог семерочной функции
Функция ИзСтрокиСРазделителями(Значение,Разделитель = ",") Экспорт Если ТипЗнч(Значение)<>Тип("Строка") Тогда Сообщить("Функция ИзСтрокиСРазделителями.Некорректный вызов.Переданное значени долно быть строкой."); Возврат Неопределено; КонецЕсли; Если Найти(Значение,Разделитель)=0 Тогда Сообщить("Функция ИзСтрокиСРазделителями.В переденном значении("""+Значение+""") нет ни одного указанного разделителшя("""+Разделитель+""")."); Возврат Неопределено; КонецЕсли; спЗначения=Новый СписокЗначений; Значение=СтрЗаменить(Значение,Разделитель,Символы.ПС); Для н=1 По СтрЧислоСтрок(Значение) Цикл спЗначения.Добавить(СтрПолучитьСтроку(Значение,н)); КонецЦикла; Возврат спЗначения; КонецФункции |
|||
10
Wobland
29.02.12
✎
14:07
|
(9) это кто там так над выводимыми сообщениями поиздевался?
|
|||
11
ShoGUN
29.02.12
✎
14:07
|
(8) Кстати да, но по индексам не обратишься...
|
|||
12
Рэйв
29.02.12
✎
14:08
|
(10)Всмысле?
|
|||
13
Wobland
29.02.12
✎
14:08
|
(12) "Переданное значени долно", "разделителшя"..
|
|||
14
Рэйв
29.02.12
✎
14:10
|
(13)аа..:-)...У меня клава хромает на обе ноги в этом смысле. Надо бы заменить но не люблю я черные а белые- дефицит:-)
|
|||
15
planod
29.02.12
✎
14:21
|
Всем Спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |