Выход из цикла по нажатию на стоп в project maker

andrew_qb

Client
Регистрация
15.11.2017
Сообщения
35
Благодарностей
1
Баллы
8
Все действия проходят в C# коде! С помощью регулярок парсю нужные данные и пока цикл while выполняется не могу завершить шаблон через кнопку стоп в projectmaker, можно ли в коде сделать проверку нажата ли стоп для выхода из цикла или есть какой то другой способ?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Тут вариант только один. Создавать файл или проверять файл на содержание и по этому сигналу прерывать цикл. Например если в указанном файле 0, то цикл продолжает свою работу, если 1 то прерывает.
 

Lord_Alfred

Client
Регистрация
09.10.2015
Сообщения
3 916
Благодарностей
3 867
Баллы
113
Но лучше не файл, а zenno-переменную проверять, чтоб лишний раз ФС не долбить. Но этот способ применим только к PM
 

andrew_qb

Client
Регистрация
15.11.2017
Сообщения
35
Благодарностей
1
Баллы
8
А как в zennoposter добиться этого?
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
Но лучше не файл, а zenno-переменную проверять, чтоб лишний раз ФС не долбить. Но этот способ применим только к PM
Да, но как в нее положить нужное значение в момент работы шаблона?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Но лучше не файл, а zenno-переменную проверять, чтоб лишний раз ФС не долбить. Но этот способ применим только к PM
почему только в PM, создал класс, и пихаю в каждый цикл где есть

2018-02-22_204655.png


в ЗП всё отрабатывает отлично
только в ЗП надо нажимать прерывать
 
  • Спасибо
Реакции: andrew_qb

andrew_qb

Client
Регистрация
15.11.2017
Сообщения
35
Благодарностей
1
Баллы
8
IsInterrupted не определяется и по этому ошибка при выполнении кубика с кодом. Что нужно подключить?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113

andrew_qb

Client
Регистрация
15.11.2017
Сообщения
35
Благодарностей
1
Баллы
8
Шикос работает, опечатался как оказалось, спасибо!
 

andrew_qb

Client
Регистрация
15.11.2017
Сообщения
35
Благодарностей
1
Баллы
8
Код:
    if(Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) break;
    if(((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)project.Context).IsInterrupted) break;
только как по мне лучше так или нужно обязательно возвращать значение?
 
Последнее редактирование:

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Шикос работает, опечатался как оказалось, спасибо!
вместо return 1 и return 2 уже сам выбирай что писать, если в кубике надо остаться и продолжить дальше выйдя из цикла то ставь break
 

one

Client
Регистрация
22.09.2015
Сообщения
6 833
Благодарностей
1 275
Баллы
113
только как по мне лучше так или нужно обязательно возвращать значение?
Если возвращать значения то можно дальше что то делать при необходимости. Логи какие записать или еще что. А так, как я понимаю, будет сразу остановка.
 
  • Спасибо
Реакции: andrew_qb

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
у меня так, в каком то классе создано

C#:
public bool IsDebugMode()
        {
            if (Global.Variables.IsProjectMaker && !Global.Variables.IsDebugMode) return true;

            if (((ZennoLab.InterfacesLibrary.ProjectModel.Collections.IContextExt)_project.Context).IsInterrupted)
                return true;
          
            return false;
        }
вызываешь в кубике

C#:
if (recParse.IsDebugMode() == true)
{
    //сохраняем все данные
    break;
}
 

andrew_qb

Client
Регистрация
15.11.2017
Сообщения
35
Благодарностей
1
Баллы
8
Всем спасибо!
 

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