Вызов определенной функции



  • На странице сайта может быть один из ~100 элементов (перечень возможных вариантов). В зависимости от того, какой именно элемент присутствует, то нужно запустить соответствующую функцию.
    Пытался решить задачу следующим способом:

    1. Описать ~100 функций
    2. Получить элемент на странице, записать ее в переменную
    3. Дальше непонятно, как вызвать определенную функцию. В BAS невозможно установить в качестве названия запускаемой функции переменную.
      3.1) Был вариант со сверкой элемента с названиями всех функций (структура в коде), но не подошло по причине долгой работы скрипта
    if [[Переменная]] == "Функция 1"
    Вызов функции "Функция 1"
    else
    if [[Переменная]] == "Функция 2"
    Вызов функции "Функция 2"
    else
    if [[Переменная]] == "Функция 3"
    Вызов функции "Функция 3"
    else
    и т.д.
    

    В итоге задача на данный момент следующая:
    Есть переменная, которая может иметь 100 различных значений (пусть это будут "function1", "function2", "function3" и т.д).
    Как в зависимости от применяемого значения переменной запустить функцию "function1", "function2", "function3" и т.д.?

    PS Попытка прописать вызов функции с подстановкой переменной в "Выполнить код" не привела к успеху



  • @GameBot said in Вызов определенной функции:

    На странице сайта может быть один из ~100 элементов (перечень возможных вариантов). В зависимости от того, какой именно элемент присутствует, то нужно запустить соответствующую функцию.
    Пытался решить задачу следующим способом:

    1. Описать ~100 функций
    2. Получить элемент на странице, записать ее в переменную
    3. Дальше непонятно, как вызвать определенную функцию. В BAS невозможно установить в качестве названия запускаемой функции переменную.
      3.1) Был вариант со сверкой элемента с названиями всех функций (структура в коде), но не подошло по причине долгой работы скрипта
    if [[Переменная]] == "Функция 1"
    Вызов функции "Функция 1"
    else
    if [[Переменная]] == "Функция 2"
    Вызов функции "Функция 2"
    else
    if [[Переменная]] == "Функция 3"
    Вызов функции "Функция 3"
    else
    и т.д.
    

    В итоге задача на данный момент следующая:
    Есть переменная, которая может иметь 100 различных значений (пусть это будут "function1", "function2", "function3" и т.д).
    Как в зависимости от применяемого значения переменной запустить функцию "function1", "function2", "function3" и т.д.?

    PS Попытка прописать вызов функции с подстановкой переменной в "Выполнить код" не привела к успеху

    Условия должны сработать мгновенно, даже если их сотня, почему это решение не подошло?

    https://community.bablosoft.com/topic/8847/вызов-функции-из-ресурса-или-переменной



  • @Fox said in Вызов определенной функции:

    Условия должны сработать мгновенно, даже если их сотня, почему это решение не подошло?
    https://community.bablosoft.com/topic/8847/вызов-функции-из-ресурса-или-переменной

    Скрипт проверял элемент, вызывал определенную функцию (которая также содержала несколько проверок условий if) и если условие в функции не выполнялось, то переходили к следующему элементу и опять проверка по 100 функциям и вложенным условиям. Всего проверка по 5 таким элементам.
    Выполнение цикла в режиме запуска занимало более 30 секунд. Предварительно перед данными проверками скрипт еще получает 6 значений через "Получить текст" и переводит их в числовые переменные, но это точно не должно занимать много времени.

    PS Скрипт был стерт при компиляции (похоже из-за неверно выставленных галочек), поэтому проверить правки не получится (Ошибка "script not found" вроде). Придется заново все записать и хотелось бы предварительно выяснить как лучше реализовать



  • @GameBot said in Вызов определенной функции:

    Скрипт проверял элемент, вызывал определенную функцию (которая также содержала несколько проверок условий if) и если условие в функции не выполнялось, то переходили к следующему элементу и опять проверка по 100 функциям и вложенным условиям. Всего проверка по 5 таким элементам.
    Выполнение цикла в режиме запуска занимало более 30 секунд. Предварительно перед данными проверками скрипт еще получает 6 значений через "Получить текст" и переводит их в числовые переменные, но это точно не должно занимать много времени.

    Проще сразу получить все необходимые данные со страницы для всех вариантов функций. Например один раз получить код страницы и уже потом его парсить. В таком случае скрипт обратится к странице один раз, а остальные действия будут выполнятся мгновенно.

    PS Скрипт был стерт при компиляции (похоже из-за неверно выставленных галочек), поэтому проверить правки не получится (Ошибка "script not found" вроде).

    Чегось? Как может скрипт быть стёрт из за "неверно выставленных галочек" ?


Log in to reply