Может ли ZP сам создавать переменные?

k63s

Пользователь
Регистрация
21.02.2025
Сообщения
32
Благодарностей
8
Баллы
8
Работаю над проектом создания профиль-папки. Задача: установить N количество расширений из списка, который со временем пополниться. Может ли ZP сам создать N переменных? На данный момент количество расширений - 2. Из списка получаем количество сторк. А дальше как научить ZP создавать переменные
extension_1
extension_2
extension_3
...
extension_N
?
 

The_vAe

Client
Регистрация
30.05.2019
Сообщения
3 629
Благодарностей
1 410
Баллы
113
Работаю над проектом создания профиль-папки. Задача: установить N количество расширений из списка, который со временем пополниться. Может ли ZP сам создать N переменных? На данный момент количество расширений - 2. Из списка получаем количество сторк. А дальше как научить ZP создавать переменные
extension_1
extension_2
extension_3
...
extension_N
?
C#:
// Список переменных для проверки и создания
var variableNames = new List<string>
{
    "extension_1",
    "extension_2"

};

foreach (string variableName in variableNames)
{
    // Проверяем, существует ли переменная
    if (!project.Variables.Keys.Contains(variableName))
    {
        // Создаем переменную, если она отсутствует
        project.SendToLog($"Переменная '{variableName}' не существует. Создаем её без значения.",
                ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, true, ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Default);

        object obj = project.Variables;
        obj.GetType().GetMethod("QuickCreateVariable").Invoke(obj, new object[]
            {
                variableName
            });
    }
    else
    {
        project.SendToLog($"Переменная '{variableName}' уже существует.",
                ZennoLab.InterfacesLibrary.Enums.Log.LogType.Info, false, ZennoLab.InterfacesLibrary.Enums.Log.LogColor.Default);
    }
}
 
  • Спасибо
Реакции: k63s

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 881
Благодарностей
2 605
Баллы
113
Переменная - это что-то типа кошелька.
Значение, которое хотим в нее запихнуть (строчку из списка) - это типа денежка.
Вы же не покупаете и не носите с собой много кошельков для каждой купюры?
Так и в данном случае - не стоит создавать вагон переменных.

Взяли строчку из списка - положили в переменную например extension.
Выполнили действие.
Сохранили значение в какой-то другой список.
Вернулись к первому списку - взяли другую строчку...
И так, пока не сделали всю работу.

Но, если очень хочется создавать автоматически - можно поискать на форуме, где-то лежал фрагмент кода.
При этом, это не очень хорошо так делать - из-за чего здесь код давать не буду.
Лучше делать, как описал выше логику.
 
  • Спасибо
Реакции: k63s

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 571
Благодарностей
3 395
Баллы
113
Учитесь адекватно использовать инструментарий!

Под ваш случай хорошо подойдут таблицы, но и кроме них можно использовать иные варианты.
 

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