Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 06:00

Найти нескольких элементов в списке значений

Автор KatePie, 13 ноя 2016, 16:11

0 Пользователей и 1 гость просматривают эту тему.

KatePie

СписокБукв заполнен буквами, например А, Б, В, Г, А. Пользователь вводит букву "А" и на экран должны быть выведены индексы элементов "А". Выводит только 0 четыре раза, а 0 и 4 не хочет :(
СписокБукв = Новый СписокЗначений;
ВвестиСтроку(Буква);
Для каждого ЭлементСписка из СписокБукв цикл
    ЭлементСписка = СписокБукв.НайтиПоЗначению(Буква);
    Сообщить(СписокБукв.Индекс(ЭлементСписка));
КонецЦикла;

pavl_vs

KatePie, Вы четыре раза запускаете поиск нужной буквы (СписокБукв.НайтиПоЗначению(Буква)) не сдвигая стартовый индекс списка. В результате каждый раз метод "Найти" натыкается на первое (с индексом = 0) значение буквы (А).


    Для Каждого ЭлементСписка из СписокБукв Цикл
        //ЭлементСписка = СписокБукв.НайтиПоЗначению(Буква);
        Если ЭлементСписка = Буква Тогда
            Сообщить(СписокБукв.Индекс(ЭлементСписка));
        КонецЕсли;
    КонецЦикла;


От использования СписокБукв.НайтиПоЗначению(Буква) в цикле следует отказаться - для больших массивов непроизводительно.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск