Как передавать в проект данные извне?

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
В настройках проекта в поле "Сколько делать", указываю допустим 10.
Можно ли эту цифру 10 передать в сам проект?
Затем когда проект выполнится и число 10 уменьшиться на единицу, для следующего выполнения этого проекта передать в него уже число 9 и т.д.
Т.е. это будет что-то вроде счётчика, только запускаемого извне.

109701


Я подумал, возможно это можно как-то сделать через Переменные окружения, но ни на форуме, не в документации ничего не нашёл для того чтобы реализовать задуманное. Есть ли вообще в ZennoPoster возможность реализовать задуманное.
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
956
Благодарностей
394
Баллы
63
нельзя.
вопрос на встречу, представим что можно, а что получит проект который работает в 100 потоков ?
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
нельзя.
вопрос на встречу, представим что можно, а что получит проект который работает в 100 потоков ?
В каждом потоке вероятно своя среда выполнения и свои переменные окружения. Поэтому для каждого потока свой отсчёт.
 

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
Жаль конечно что нельзя. Придётся тогда внутри проект делать глобальный цикл со встроенным счётчиком.
Спасибо что прояснили этот момент. Вопросов больше нет.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 790
Благодарностей
1 002
Баллы
113
Жаль конечно что нельзя. Придётся тогда внутри проект делать глобальный цикл со встроенным счётчиком.
Спасибо что прояснили этот момент. Вопросов больше нет.
вы логикой управлят.

например - во входящих указываем, что надо сделать 100 выполнений.

при запуске шаб первым делом проверяет файл - если нет - значит надо 100 выполнений (если есть проверяем кол-во строк в нем. если = 100, то закончили, если меньше - стартуем выполнения в нужное кол-во потоков).

При успешном окончании - добавляем строку в файл. как то так..


вообще раз можно установить кол-во выполнений, то можно и получить эту инфу... попробуйте тут копнуть https://zennolab.com/discussion/threads/upravlenie-shablonom-c.54713/
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 638
Благодарностей
937
Баллы
113
Ну цифру кол-ва выполнений получить не проблема
C#:
            var list = ZennoPoster.TasksList;

            string pattern = @"(?<=<Name>).*(?=</Name>)";
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)";



            foreach (var her in list)
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
            }
 
  • Спасибо
Реакции: eee и FCKDSH

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 638
Благодарностей
937
Баллы
113
Ну цифру кол-ва выполнений получить не проблема
C#:
            var list = ZennoPoster.TasksList;

            string pattern = @"(?<=<Name>).*(?=</Name>)";
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)";



            foreach (var her in list)
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase); // получаем имя проекта
                project.SendInfoToLog(m.Value);
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase); // получаем количество повторов проекта
                project.SendInfoToLog(m.Value);
            }
C#:
ZennoPoster.AddTries("Имя проект", 100); // 100 это сколько повторов
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
Ну цифру кол-ва выполнений получить не проблема
C#:
            var list = ZennoPoster.TasksList;

            string pattern = @"(?<=<Name>).*(?=</Name>)";
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)";



            foreach (var her in list)
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
            }
Я не сильно разбираюсь в C#. Я правильно понял, что мы здесь выводим в консоль номер текущего выполнения скрипта project.SendInfoToLog(m.Value);

А если я захочу сохранить это значение в переменную мне нужно эту строку заменить на следующую:
project.Variables["IterationNumber"].Value = m.Value ??

И не совсем понял почему два паттерна у нас ( pattern и patter2)?

UPD. Чутка напряг извилину. Если я правильно понял, первый паттерн выводит название выполняемого проекта.
А вот второй паттерн по нему мы уже находим текущий номер повтора проекта (то что мне нужно), я правильно понял?
 
Последнее редактирование:

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 638
Благодарностей
937
Баллы
113
C#:
            var list = ZennoPoster.TasksList; //Получаем список со всеми проектами в ЗП

            string pattern = @"(?<=<Name>).*(?=</Name>)"; // Регулярка на получание имя проекта
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)"; //Регулярка на получение количества выполнений проекта



            foreach (var her in list) //Перебираем список с проектами ЗП
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase); //Получаем имя проекта
                project.SendInfoToLog(m.Value); //Выводим в лог имя проекта
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase); //Получаем количество повторов проекта
                project.SendInfoToLog(m.Value);//Выводим в лог количество повторов
            }
В целом вы сами можете поковыряться со списком проектов
var list = ZennoPoster.TasksList
Здесь мы помещаем в список все данные обо всех проектах которые добавлены в зенопостер, моежете поизучать какие данные там есть и выбрать те которые нужны
 
  • Спасибо
Реакции: volody00, Bas и FCKDSH

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 638
Благодарностей
937
Баллы
113
Я не сильно разбираюсь в C#. Я правильно понял, что мы здесь выводим в консоль номер текущего выполнения скрипта project.SendInfoToLog(m.Value);

А если я захочу сохранить это значение в переменную мне нужно эту строку заменить на следующую:
project.Variables["IterationNumber"].Value = m.Value ??
И то и другое да
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
C#:
            var list = ZennoPoster.TasksList; //Получаем список со всеми проектами в ЗП

            string pattern = @"(?<=<Name>).*(?=</Name>)"; // Регулярка на получание имя проекта
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)"; //Регулярка на получение количества выполнений проекта



            foreach (var her in list) //Перебираем список с проектами ЗП
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase); //Получаем имя проекта
                project.SendInfoToLog(m.Value); //Выводим в лог имя проекта
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase); //Получаем количество повторов проекта
                project.SendInfoToLog(m.Value);//Выводим в лог количество повторов
            }
В целом вы сами можете поковыряться со списком проектов
var list = ZennoPoster.TasksList
Здесь мы помещаем в список все данные обо всех проектах которые добавлены в зенопостер, моежете поизучать какие данные там есть и выбрать те которые нужны
Отличный ответ. Респект от души:ay:.
Это то, что мне нужно было. Сейчас попробую поэкспериментировать...
 
  • Спасибо
Реакции: Sherminator

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