Имя: Пароль:
1C
1C 7.7
v7: Подскажите как Найти()
,
0 SashaNNV
 
17.04.15
14:46
Добрый день подскажите как организовать поиск в строке

Функция:
Найти(СокрЛП(Врег(ГдеИщем)),СокрЛП(Врег(ЧтоИщем)))

ищет с начала строки, как искать из любой части строки

например: ГдеИщем=123456 и  ЧтоИщем=45 должно возвращать 1


Заранее спасибо.
1 Бовка
 
17.04.15
14:48
(0) Найди вхождение, обрежь функцией Прав и ищи еще раз
2 Ёпрст
 
17.04.15
14:49
" должно возвращать 1 "
1 - это что ? Число вхождений, или что ?
3 Ёпрст
 
17.04.15
14:50
Или просто проверка, что оно есть ?

Дык проверяй, что не нуль Найти вернуло.. и привет
4 AcaGost
 
17.04.15
14:50
(0) Померь температуру
5 Z1
 
17.04.15
14:51
(0) Так сначала создай подстрокус N-го символа.
Потом в подстроке ищи с первого символа.
Все.
6 SashaNNV
 
17.04.15
14:51
(3)
На данном примере:
ГдеИщем=123456 и  ЧтоИщем=45
Найти() возвращает 0
7 SashaNNV
 
17.04.15
14:52
(2) Число вхождений не интересует
8 Бовка
 
17.04.15
14:52
(6) бред
9 SashaNNV
 
17.04.15
14:53
Должно вернуть 1 или 0, просто функция Найти() ищет с начала строки, а нужно искать вхождение в любой части строки.
10 SashaNNV
 
17.04.15
14:54
(8)
Т.е. я не прав, значит буду разбираться...
11 dk
 
17.04.15
14:54
числа перед найти в строки переводить не пробовал? ))
12 Alex S D
 
17.04.15
14:55
пятница..
13 Бовка
 
17.04.15
14:56
(9) почитай СП
14 Spyke
 
17.04.15
14:57
(0) Все ищет и Возвращает позицию первого вхождения в строку поиска заданной подстроки.
15 kortun
 
17.04.15
14:57
Тебе так что-ли надо?
?(Найти(СокрЛП(Врег(ГдеИщем)),СокрЛП(Врег(ЧтоИщем)))>0, 1, 0);
16 фобка
 
17.04.15
14:57
Венет 5
17 фобка
 
17.04.15
14:58
(0) Вернёт 5
18 Бовка
 
17.04.15
14:58
(11) +1 согласен, конвертни в строку
19 Spyke
 
17.04.15
14:58
Если Найти(ст1,ст2) = 1 Тогда
.....
КонецЕсли
Данная конструкция работать не будет
20 Alex S D
 
17.04.15
14:59
(17) вообще-то 4
21 фобка
 
17.04.15
14:59
(11) (18) неважно
22 фобка
 
17.04.15
15:00
(20) точно, внимательность
23 kortun
 
17.04.15
15:00
(18) СокрЛП и так конвертить в строку
24 Spyke
 
17.04.15
15:00
(23) не успел
25 Spyke
 
17.04.15
15:01
они сговорились Работа с таблицей
26 kortun
 
17.04.15
15:02
(25) точно :)
27 SashaNNV
 
17.04.15
15:03
Проверил еще раз, ищет только начиная с первого символа, если по первым символам вхождения нет, возвращает 0
28 фобка
 
17.04.15
15:04
(27) нет
29 silent person
 
17.04.15
15:05
Найти(СокрЛП(Врег(12345)),СокрЛП(Врег(45)))  = 4

это из табло, так что ищи ошибку в коде
30 Alex S D
 
17.04.15
15:05
(27) ты число передаешь? какое точно? При преобразовании к строке там вставляются символы разрыва..
31 kortun
 
17.04.15
15:05
побуду телепатом, тебе похоже надо чтобы
не только
ГдеИщем=123456 и  ЧтоИщем=45
но и
ГдеИщем=123456 и  ЧтоИщем=54
тоже выдавало 1

т.е. не важно порядок символов в ЧтоИщем

так?
32 фобка
 
17.04.15
15:05
(30) в семерке нет
33 Alex S D
 
17.04.15
15:06
ааа, это семерка. .тьфу на вас. пошел..
34 Spyke
 
17.04.15
15:06
(27)

Сообщить(Найти(СОКРЛП(ст1),СОКРЛП(ст2)));

Добавь на форму два реквизита диалога ст1 и ст2 соответственно и проверь
35 фобка
 
17.04.15
15:06
(31) второе только посимвольно в цикле
36 SashaNNV
 
17.04.15
15:07
(31) Порядок важен
37 Spyke
 
17.04.15
15:07
(27) Да и отсыпь что куришь
38 kortun
 
17.04.15
15:11
(36) ох и пиликает кто то
http://f6.s.qip.ru/q7I7mFBI.png
все нормально ищет
39 SashaNNV
 
17.04.15
15:12
(29) Все спасибо, разобрался
40 SashaNNV
 
17.04.15
15:12
(38) Да работает
41 kortun
 
17.04.15
15:12
+(38) уж не знаю что ты там и где ищешь, но у меня код прекрасно отрабатывает
42 Масянька
 
17.04.15
15:13
Сообщить(Найти(12345, 45)); = 4
43 SashaNNV
 
17.04.15
15:15
(42) Все верно, так и работает. Косяк в другом был...
44 aka AMIGO
 
17.04.15
15:15
Сообщить(Найти(""+12345, ""+45)) = 4;
Сообщить(Найти(Строка(12345), Строка(45))) = 4;

ЗЫ. что результат поиска должен возвращать 4 уже говорили?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший