![]() |
![]() |
|
Как найти в строке несколько ключевых слов (поиск по подстроке). | ☑ | ||
---|---|---|---|---|
0
sysadminlk
21.10.10
✎
19:45
|
Как найти в строке несколько ключевых слов (поиск по подстроке).
Док = СоздатьОбъект("Документ.Расходная"); Док.ВыбратьДокументы(); Пока Док.ПолучитьДокумент() = 1 Цикл Если Док.Проведен() = 1 Тогда Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Если Найти(СокрЛП(Врег(Док.Товар)),СокрЛП(Врег(ПодСтр))) > 0 Тогда Сообщить(""+Док+" колво "+Док.Количество+""); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Где в ПодСтр значения указанные через пробел. ПодСтр = "мышь Genius ps/2". Получается если я использую Найти(,) мне нужно как-то разбить строку ПодСтр в данном случае на три строки мышь Genius ps/2. У кого какие варианты? |
|||
1
andrewalexk
21.10.10
✎
19:46
|
:) "регулярные выражения" заяндекси
|
|||
2
azernot
21.10.10
✎
19:49
|
||||
3
aka AMIGO
21.10.10
✎
19:49
|
СЗ = глРазложить(Подстр," ");
и ищи последовательно вхождения из СЗ я так вывернулся |
|||
4
YauheniL
21.10.10
✎
19:55
|
(0) Для чего ищешь?
|
|||
5
sysadminlk
21.10.10
✎
19:56
|
(3) а можно полный вариант процедуры глРазложить
|
|||
6
sysadminlk
21.10.10
✎
19:57
|
(4) нужно строках найти эти слова если есть то показать что эти слова встречаются в таких-то расходках
|
|||
7
aka AMIGO
21.10.10
✎
20:00
|
(5) угу..
вот вариант поиска по нескольким значениям строки http://zalil.ru/29848764 и текст: //*************************************************** // глРазложить(Стр,Разделитель) // // Параметры: // Стр - строка, которую необходимо разложить на подстроки. // Параметр передается по значению. // Разделитель - строка-разделитель, по умолчанию - запятая. // // // Возвращаемое значение: // список значений, элементы которого - подстроки // // Описание: // Функция "расщепляет" строку на подстроки, используя заданный // разделитель. Разделитель может иметь любую длину. // Если в качестве разделителя задан пробел, рядом стоящие пробелы // считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр // игнорируются. // Например, // глРазложить(",ку,,,му", ",") возвратит список значений из пяти элементов, // три из которых - пустые строки, а // глРазложить(" ку му", " ") возвратит список значений из двух элементов // Функция глРазложить(Знач Стр, Разделитель = ",") Экспорт СЗ = СоздатьОбъект("СписокЗначений"); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда СЗ.ДобавитьЗначение(Стр); Возврат СЗ; КонецЕсли; СЗ.ДобавитьЗначение(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока 1=1 Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда СЗ.ДобавитьЗначение(Стр); Возврат СЗ; КонецЕсли; СЗ.ДобавитьЗначение(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции // глРазложить |
|||
8
Guk
21.10.10
✎
20:00
|
запросом уже давно бы сделал...
|
|||
9
YauheniL
21.10.10
✎
20:01
|
(6) В одной расходке одна строка, которую надо разложить?
|
|||
10
aka AMIGO
21.10.10
✎
20:01
|
(8) а поговорить?.. :)
|
|||
11
Guk
21.10.10
✎
20:03
|
LIKE рулит...
|
|||
12
sysadminlk
21.10.10
✎
20:04
|
(11) как его туда подключить )
|
|||
13
sysadminlk
21.10.10
✎
20:05
|
согласен LIKE тема ))))
|
|||
14
sysadminlk
21.10.10
✎
20:36
|
(7) Огромное спасибо очень помогло.
|
|||
15
andrewks
21.10.10
✎
21:10
|
(7) не перестаю удивляться, как программеры из 1с не умеют использовать функционал своего же интерпретатора. вот так повкуснее:
Функция глРазложить(Знач Стр,Разделитель=",") СЗ=СоздатьОбъект("СписокЗначений"); Стр=""""+СтрЗаменить(СокрЛП(Стр),Разделитель,""",""")+""""; СЗ.ИзСтрокиСРазделителями(Стр); Возврат СЗ; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |