![]() |
![]() |
![]() |
|
Как разбить строку в массив | ☑ | ||
---|---|---|---|---|
0
phpcoder
07.12.07
✎
15:16
|
Функцией ПолучитьПолноеНаименование() получаю такую строку:
САНТЕХНИКА/САНФАЯНС/MILLIM SAMAZA/Компакт Millim Samaza 9924 (Blue Grey) голубой Вопрос? Как разбить строку в массив по "/" Нужен такой результат: ЧастьСтр[0] = САНТЕХНИКА ЧастьСтр[1] = САНФАЯНС ЧастьСтр[2] = MILLIM SAMAZA ЧастьСтр[3] = Компакт Millim Samaza 9924 (Blue Grey) голубой |
|||
1
Immortal
07.12.07
✎
15:17
|
ИзСтрокиСРазделителями
|
|||
2
Гаркин
07.12.07
✎
15:17
|
Воспользоваться яндексом
|
|||
3
SASH_EG
07.12.07
✎
15:20
|
СтрокаСПараметрами=Параметры;
Позиция=Найти(СтрокаСПараметрамиFTP,"/"); Элемент1=Сред(СтрокаСПараметрами,1,Позиция-1); СтрокаСПараметрами=Прав(СтрокаСПараметрами,СтрДлина(СтрокаСПараметрами)-Позиция); Позиция=Найти(СтрокаСПараметрами,"/"); Элемент2=Сред(СтрокаСПараметрами,1,Позиция-1); СтрокаСПараметрами=Прав(СтрокаСПараметрами,СтрДлина(СтрокаСПараметрами)-Позиция); |
|||
4
luns
07.12.07
✎
15:23
|
Типовая функция из модуля "Общего назначения"
// Функция "расщепляет" строку на подстроки, используя заданный // разделитель. Разделитель может иметь любую длину. // Если в качестве разделителя задан пробел, рядом стоящие пробелы // считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр // игнорируются. // Например, // РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов, // три из которых - пустые строки, а // РазложитьСтрокуВМассивПодстрок(" ку му", " ") возвратит массив значений из двух элементов // // Параметры: // Стр - строка, которую необходимо разложить на подстроки. // Параметр передается по значению. // Разделитель - строка-разделитель, по умолчанию - запятая. // // // Возвращаемое значение: // массив значений, элементы которого - подстроки // Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции // глРазложить |
|||
5
phpcoder
07.12.07
✎
15:23
|
Я заранее не знаю глубину выборки
|
|||
6
sdvig
07.12.07
✎
15:24
|
В глобальном модуле есть функция глРазложить
|
|||
7
SASH_EG
07.12.07
✎
15:26
|
(4)(6) таки граждане уверены что все "живут" в типовых конфах ?
(4) иой пример -тоже самое только короче :) |
|||
8
Кураж
07.12.07
✎
15:27
|
(3) Да вы, батенька, извращенец!
МнСтр=СтрЗаменить(ИсходнаяСтрока,Разделитель,Символы.ПС); Для н=1 По СтрЧислоСтрок(МнСтр) Цикл Массив.Добавить(СтрПолучитьСтроку(МнСтр,н)); |
|||
9
SASH_EG
07.12.07
✎
15:28
|
(5) ну выбирай пока есть что, строка же сокращается.
|
|||
10
SASH_EG
07.12.07
✎
15:31
|
(8) да, этот способ красивее :)
|
|||
11
luns
07.12.07
✎
15:33
|
(7) не уверен... поэтому и запостил саму функцию
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |