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

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
Сабж. Циклы с ограничением по счетчику, с условиями выхода и ошибки и так далее.
А то приходится лепить целую стену кубиков - это очень неудобно.
 

jkarsak37428

Client
Регистрация
20.12.2015
Сообщения
137
Благодарностей
11
Баллы
18
Switch не?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 493
Благодарностей
8 697
Баллы
113
Сабж. Циклы с ограничением по счетчику, с условиями выхода и ошибки и так далее.
А то приходится лепить целую стену кубиков - это очень неудобно.
ПКМ по нужному кубику и через контекстное меню создать группу экшенов цикла со счетчиком..
мне кажется, что вроде не оч. трудозатратно..
 

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
ПКМ по нужному кубику и через контекстное меню создать группу экшенов цикла со счетчиком..
мне кажется, что вроде не оч. трудозатратно..
Ну так и получается все та же стена кубиков, о которой я и говорил. Эта функция реализована стандартными средствами. Реализовать в виде того же блока это было в десятки раз удобнее как в плане создания циклов, так и в плане их дальнейшего редактирования.
Например, надо 2 кубика закинуть цикл. Объединяем его в блок-цикл, кликаем по этикетке блока и открывается настройка цикла. И НИЧЕГО лишнего, помимо зацикленной части
 

Чешир

Client
Регистрация
27.06.2014
Сообщения
1 541
Благодарностей
904
Баллы
113
ИМХО, в зенке и так нормально циклы делаются.
нахрена улучшать то, что и так хорошо?
 
  • Спасибо
Реакции: one и orka13

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 104
Баллы
113
Если хотите меньше кубиков, пишите в коде.

Как пример для для кубиков со скрина из первого поста:
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(); // если текст не найден, выход по красной
 

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
Если хотите меньше кубиков, пишите в коде.

Как пример для для кубиков со скрина из первого поста:
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 = "Здесь что писать?";
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 104
Баллы
113
Так делать надо, да?
Верно! Можно без скобок.
А как передать найденное значение в переменную?
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();
 

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