Автозамена переменных - при переносе кубиков в другой проект

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 495
Благодарностей
1 304
Баллы
113
Доброго времени суток. Не знаю у кого как, но мне часто приходится переносить части проектов в основной проект, методом копирования много кубиков в одном проекте и перенос их в другой проект. В таких случаях, при переносе кубиков, зенка создает переменные, которые присутствуют в данных кубиках со старого проекта. Есть ли возможность, сделать фильтр-автозамены переменных? Например:
1. В старом проекте есть кубик с переменной A0_Переменная1
2. В настройках основного проекта, устанавливаем фильтр, который позволит при переносе со старого проекта в новый, сделать автозамену переменной A0_Переменная1 в B0_ПеременнаяNew1 , тем самым задав таких много фильтров, каждый раз, когда будет происходить копирование переменных, фильтр автоматически подгонит имена переменных под новые требования.

Так же, желательно добавить, по возможности, если со старого проекта, переносится в новый проект кубик C# , то переменные из данного кубика тоже переносились в новый проект, так как на данный момент, данная фича отсутствует и переменные с кубика c# не создаются.

Если воплотить данное пожелание тяжело физически, добавьте наконец, массовую автозамену хотя бы для переменных, что бы можно было как объединить созданные ранее переменные A0_Переменная1 и B0_ПеременнаяNew1, в одну целую B0_ПеременнаяNew1 по нужде и во всех кубиках изменить имена данных переменных по такому же принципу.

В моем случае, где разрабатываются проекты на 500+ кубиков и каждый раз приходится вытаскивать по 50 кубиков с 100+ переменными, тяжело переименовывать их в новом проекте и подстраивать под новые реалии...


Пример о чем речь:
1. В старом проекте, есть переменная A0_Imya , данная переменная отвечает за ношение информации имени, например Роман , и данная переменная находится в более чем 100 кубиках старом проекте.
2. В новом проекте (основном), есть переменная B000_Imya2, данная переменная отвечает за ношение информации в ОСНОВНОМ проекте имени - Роман, данная переменная уже задействована в новом проекте (основном) в более чем 100 кубиков.
3. При переносе со старого проекта 100 кубиков с задействованной переменной A0_Imya , в новый проект (основной) , нужно заменить во всех кубиках имя переменной с A0_Imya на B000_Imya2, а так же заменить саму переменную в списке переменных с A0_Imya на B000_Imya2 , тем самым, все алгоритмы, которые работали в старом проекте с A0_Imya, теперь будут работать с B000_Imya2.

Заранее, очень благодарен за поддержку данного нововведения.
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
Так же, желательно добавить, по возможности, если со старого проекта, переносится в новый проект кубик C# , то переменные из данного кубика тоже переносились в новый проект, так как на данный момент, данная фича отсутствует и переменные с кубика c# не создаются.
Все нормально создается при переносе кубика C# . у меня даже есть специальные кубы с наборами переменных, чисто для быстрого переноса. и это кубики C#
По остальному не понял фишку, ну да ладно, буду пользоваться тем что есть.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
переносе кубиков, зенка создает переменные, которые присутствуют в данных кубиках со старого проекта. Есть ли возможность, сделать фильтр-автозамены переменных? Например:
1. В старом проекте есть кубик с переменной A0_Переменная1
2. В настройках основного проекта, устанавливаем фильтр, который позволит при переносе со старого проекта в новый, сделать автозамену переменной A0_Переменная1 в B0_ПеременнаяNew1 , тем самым задав таких много фильтров, каждый раз, когда будет происходить копирование переменных, фильтр автоматически подгонит имена переменных под новые требования.

Если воплотить данное пожелание тяжело физически, добавьте наконец, массовую автозамену хотя бы для переменных, что бы можно было как объединить созданные ранее переменные A0_Переменная1 и B0_ПеременнаяNew1, в одну целую B0_ПеременнаяNew1 по нужде и во всех кубиках изменить имена данных переменных по такому же принципу.

В моем случае, где разрабатываются проекты на 500+ кубиков и каждый раз приходится вытаскивать по 50 кубиков с 100+ переменными, тяжело переименовывать их в новом проекте и подстраивать под новые реалии...

Заранее, очень благодарен за поддержку данного нововведения.
да.. тяжело конечно разработчикам шаблонов... надо облегчать себе задачи, а то так и завернуться раньше времени можно :ca:
держи код, который переименует твои переменные. пример простой, можешь усложнить под свои нужды. ну там циклы применить или регулярки... в общем фантазируй не хочу. это и будет твой настраиваемый фильтр, который просишь у разрабов.

C#:
try{string name = "temp_old_name_1"; project.Variables[name].Name = "temp_new_name_1";}catch{}
try{string name = "temp_old_name_2"; project.Variables[name].Name = "temp_new_name_2";}catch{}
try{string name = "temp_old_name_3"; project.Variables[name].Name = "temp_new_name_3";}catch{}
try{string name = "temp_old_name_4"; project.Variables[name].Name = "temp_new_name_4";}catch{}
кому интересно, то код взят отсюда https://zennolab.com/discussion/threads/kak-izmenit-znachenie-po-umolchaniju-dlja-peremennoj.77519/
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 495
Благодарностей
1 304
Баллы
113
да.. тяжело конечно разработчикам шаблонов... надо облегчать себе задачи, а то так и завернуться раньше времени можно :ca:
держи код, который переименует твои переменные. пример простой, можешь усложнить под свои нужды. ну там циклы применить или регулярки... в общем фантазируй не хочу. это и будет твой настраиваемый фильтр, который просишь у разрабов.

C#:
try{string name = "temp_old_name_1"; project.Variables[name].Name = "temp_new_name_1";}catch{}
try{string name = "temp_old_name_2"; project.Variables[name].Name = "temp_new_name_2";}catch{}
try{string name = "temp_old_name_3"; project.Variables[name].Name = "temp_new_name_3";}catch{}
try{string name = "temp_old_name_4"; project.Variables[name].Name = "temp_new_name_4";}catch{}
кому интересно, то код взят отсюда https://zennolab.com/discussion/threads/kak-izmenit-znachenie-po-umolchaniju-dlja-peremennoj.77519/
Данный код создает баг переменных, например:
C#:
try{string name = "A2_NameProfile"; project.Variables[name].Name = "sss";}catch{}
Если после переноса переменных, в новом проекте у нас есть две переменные
1. A2_NameProfile - которую нужно заменить
2. sss - на которую нужно заменить

В результате, используя снипет выше, мы вместо замены A2_NameProfile на sss в новом проекте, создаем дубль sss переменной:
77462

Мало того, не происходит замены в самих кубиках, где использовалась переменная A2_NameProfile , тем самым снипет не подходит для данной задачи.
 
Последнее редактирование:

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 709
Баллы
113
То что этот метод не меняет переменные внутри снипетов, это конечно печально.
Баг с созданием 2-х одинаковых переменных, можно обойти, но смысла нет с учетом первой проблемы.
Ну тогда только на разрабов зенки надеятся.
 

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