Нужны нормальные кубики для выполнения циклов.

  • Автор темы Автор темы vaulroon
  • Дата начала Дата начала

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Реакции
11
Баллы
18
Сабж. Циклы с ограничением по счетчику, с условиями выхода и ошибки и так далее.
А то приходится лепить целую стену кубиков - это очень неудобно.
cr-1UKndSly1f0DB5Fdkyw.png
 
Сабж. Циклы с ограничением по счетчику, с условиями выхода и ошибки и так далее.
А то приходится лепить целую стену кубиков - это очень неудобно.
cr-1UKndSly1f0DB5Fdkyw.png
ПКМ по нужному кубику и через контекстное меню создать группу экшенов цикла со счетчиком..
мне кажется, что вроде не оч. трудозатратно..
 
ПКМ по нужному кубику и через контекстное меню создать группу экшенов цикла со счетчиком..
мне кажется, что вроде не оч. трудозатратно..
Ну так и получается все та же стена кубиков, о которой я и говорил. Эта функция реализована стандартными средствами. Реализовать в виде того же блока это было в десятки раз удобнее как в плане создания циклов, так и в плане их дальнейшего редактирования.
Например, надо 2 кубика закинуть цикл. Объединяем его в блок-цикл, кликаем по этикетке блока и открывается настройка цикла. И НИЧЕГО лишнего, помимо зацикленной части
7eRFCOaoR_aqcGJ4apidIw.png
 
ИМХО, в зенке и так нормально циклы делаются.
нахрена улучшать то, что и так хорошо?
 
  • Спасибо
Реакции: one и orka13
Если хотите меньше кубиков, пишите в коде.

Как пример для для кубиков со скрина из первого поста:
C#:
Развернуть Свернуть Копировать
string text = "Замечены подозрительные попы"; // текст, который нужно искать на странице
int count = 10; // макс. кол-во выполнений цикла (кол-во попыток найти текст)

for (int i = 0; i < count; i++) {
    if (Regex.Match(instance.ActiveTab.PageText, text).Success) {
        return "ok"; // тут выполнение каких-то действий, если текст найден. В данном случае - выход по зелёной
    }
    Thread.Sleep(1 * 1000); // тут выполнение каких-то действий, пока не нашли текст. В данном случае - пауза 1 сек.
}
throw new Exception(); // если текст не найден, выход по красной
 
Если хотите меньше кубиков, пишите в коде.

Как пример для для кубиков со скрина из первого поста:
C#:
Развернуть Свернуть Копировать
string text = "Замечены подозрительные попы"; // текст, который нужно искать на странице
int count = 10; // макс. кол-во выполнений цикла (кол-во попыток найти текст)

for (int i = 0; i < count; i++) {
    if (Regex.Match(instance.ActiveTab.PageText, text).Success) {
        return "ok"; // тут выполнение каких-то действий, если текст найден. В данном случае - выход по зелёной
    }
    Thread.Sleep(1 * 1000); // тут выполнение каких-то действий, пока не нашли текст. В данном случае - пауза 1 сек.
}
throw new Exception(); // если текст не найден, выход по красной

А если определений несколько? Либо одно, либо другое, либо третье?
string text = "(Определение1|Определение2|Определение3)";
Так делать надо, да?
А как передать найденное значение в переменную?
project.Variables["Response"].Value = "Здесь что писать?";
 
Так делать надо, да?
Верно! Можно без скобок.
А как передать найденное значение в переменную?
project.Variables["Response"].Value = Regex.Match(instance.ActiveTab.PageText, text).Value;
Но лучше тогда сократить:
C#:
Развернуть Свернуть Копировать
string text = "Определение1|Определение2|Определение3";
int count = 10;

for (int i = 0; i < count; i++) {
    Match m = Regex.Match(instance.ActiveTab.PageText, text);
    if (m.Success) {
        project.Variables["Response"].Value = m.Value;
        return "ok";
    }
    Thread.Sleep(1 * 1000);
}
throw new Exception();
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)