|
Поиск подстроки в строке | ☑ | ||
---|---|---|---|---|
0
lg2marvel
25.08.14
✎
14:16
|
Добрый день, банальная задача: поиск подстроки в строке, но хоть убейте не могу сообразить как лучше сделать?
Строка следующего вида: 0;3;FP8101100344;419500040;2949845254;2072300900;4110425667;0;1;FP8101100344; В ней передаются параметры и функцией хочу получать параметр Функция ВернутьПараметр(Стр,Пар) Стр - соответственно строка Пар - номер параметра Вернуть надо кусочек, например при Пар = 3, вернуть "FP8101100344" Или можно ли такую строку выгрузить в список значений (если да то как) чтоб обращаться к результату как-то так: Сп = ВернутьПараметр(Стр) Сп.ПолучитьЗначение(3) |
|||
1
Timon1405
25.08.14
✎
14:20
|
БСП - СтроковыеФункцииКлиентСервер
|
|||
2
salvator
25.08.14
✎
14:20
|
Помещать подстроку по разделителю ";" в массив и возвращать номер элемента
|
|||
3
Garykom
гуру
25.08.14
✎
14:20
|
(0) мдааааа....
эта есть такая замечательная функция СтрЗаменить(ИсхСтрока, ПодстрокаПоиска, ПодстрокаЗамены) вот если ее заюзать с ПодстрокаЗамены = Символы.ПС то будет тебе в результате многострочная строка )) которая СтрПолучитьСтроку(МногостросчнаяСтрока, НомерПараметра) даст нужный параметр |
|||
4
salvator
25.08.14
✎
14:21
|
+(2) Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции |
|||
5
zulu_mix
25.08.14
✎
14:21
|
в многострочную строку грузи.
мнстрока = стрзаменить(исходнаястрока,";",символы.пс); возврат получитьстроку(мнстрока,номерпараметра-1); |
|||
6
lg2marvel
25.08.14
✎
14:32
|
Дошло, можно закрывать
Функция ВернутьПараметр(Стр) СтрРазб = Стр; Рзд = ";"; Сп = СоздатьОбъект("СписокЗначений"); Инд = Найти(СтрРазб, Рзд); Пока Инд <> 0 Цикл ТекСтр = Сред(СтрРазб, 1, Инд - 1); Сп.ДобавитьЗначение(СокрЛП(ТекСтр)); СтрРазб = Сред(СтрРазб, Инд + 1); Инд = Найти(СтрРазб, Рзд); КонецЦикла; Возврат Сп КонецФункции |
|||
7
lg2marvel
25.08.14
✎
14:33
|
(5) Спасибо
|
|||
8
lg2marvel
25.08.14
✎
14:34
|
Всем спасибо.
|
|||
9
Wobland
25.08.14
✎
14:35
|
(6) это делается по-другому. на здоровье
|
|||
10
Timon1405
25.08.14
✎
14:35
|
Зачем изобретать ведосипеды? Своя рубашка греет лучше, чем чужая шуба?
|
|||
11
lg2marvel
25.08.14
✎
14:49
|
(9) учту
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |