Вопрос по СтрНайти

1. UPKA 14.07.22 09:23 Сейчас в теме
Здравствуйте, подскажите пожалуйста. Не могу понять, как решить проблему с помощью СтрНайти.

Допустим, есть искомое в строке: 1306

В справочнике присутствует и 1306 и 130. Так вот, почему то СтрНайти возвращает как раз 130. А как сделать, что бы искал точно все символы?

Справку читал, но не понял, только то, что нужно подставить какое то значение во вхождение.
По теме из базы знаний
Найденные решения
12. UPKA 15.07.22 16:10 Сейчас в теме
(11) Задача уже решена через разбор массива слов строки. Через СтрНайти невозможно найти точное совпадение, берется первый попавшийся элемент метаданных.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. ishelper 14.07.22 10:34 Сейчас в теме
(1)
В справочнике присутствует и 1306 и 130. Так вот, почему то СтрНайти возвращает как раз 130.
Нэ бивает! Код покажите?
8. Zevzm 14.07.22 10:57 Сейчас в теме
(1) Правильная постановка вопроса - это уже половина ответа. Вы бы привели часть кода, пример строк для поиска, быстрее бы помогли...
2. comptr 33 14.07.22 09:29 Сейчас в теме
Во-первых, СтрНайти находит первое вхождение искомой строки как подстроки в исходной строке.
Сравнение выполняется с учетом регистра.
Во-вторых, по такой постановке вопроса вообще мало что понятно. Если в строке ищутся коды элементов справочника, то всё правильно: "130 есть в строка 1306" и "1306 есть в строке 1306". Если хотите полное совпадение, то почему просто не сравнить на равенство?
Если ИскомаяСтрока = КодИзСправочника Тогда
3. UPKA 14.07.22 09:37 Сейчас в теме
(2) Потому что, по мимо искомого значения в строке имеются и другие значения в хаотичном порядке.
11. comptr 33 15.07.22 14:42 Сейчас в теме
(3) тогда распишите задачу подробно.
4. EVKash 15 14.07.22 10:09 Сейчас в теме
(1) что-то вы не договариваете. например
Строка = "флоыап130прав1306бючсп";
Сообщить(Сред(Строка, СтрНайти(Строка, "1306")));
ожидаемо вернет "1306бючсп"
что-то с остальной логикой у Вас не так...
6. UPKA 14.07.22 10:39 Сейчас в теме
(4) СтрНайти("флоыап130прав1306бючсп", "а здесь выборка из запроса").... Даже через Сред как он найдет, если в выборке попадается 130?


Точнее в исхожной строке не может встречаться и 130 и 1306. Т.е. только "прав1306бючсп" - такого вида. Даже без остальных символов. просто прав 1306 бючсп.


В моем случается получается, что проще разделить на слова и засунуть в массив, далее через найти по реквизиту подставлять значения.
9. EVKash 15 14.07.22 11:10 Сейчас в теме
(6)
В моем случается получается, что проще разделить на слова и засунуть в массив, далее через найти по реквизиту подставлять значения.
если есть разделитель, пробел например, то да. Через СтрРазделить в массив и искать в массиве.
10. spacecraft 14.07.22 12:34 Сейчас в теме
(6)
СтрНайти("флоыап130прав1306бючсп", "а здесь выборка из запроса").... Даже через Сред как он найдет, если в выборке попадается 130?

Так что же хотите в итоге получить?
Если в выборке попадается 130, то на этом этапе и находит 130.
А то получается, что "в строке поиска задаю 130 и он 130 и находит, а нужно только 1306".
7. EVKash 15 14.07.22 10:53 Сейчас в теме
(6) Тогда в вашем случае обходить выборку нужно по убыванию длины строки.
12. UPKA 15.07.22 16:10 Сейчас в теме
(11) Задача уже решена через разбор массива слов строки. Через СтрНайти невозможно найти точное совпадение, берется первый попавшийся элемент метаданных.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот