Бесплатные снипеты на заказ

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
Помогите, вроде не должно быть сложно.. Текст из переменной вставить рандомно в список, т.е не в начало или конец, а именно в позицию рандом. Целый день сижу над этим...
C#:
IZennoList list = project.Lists["List"]; // список проекта
string str = project.Variables["text"].Value; // переменная проекта
list.Insert(new Random().Next(list.Count), str);
Хотя, можно и стандартным кубиком "Операции над списком" > "Добавить текст", выбрать "В позицию", прописать Random (регистр не важен). Единственное отличие от кода это то, что в данном случае строка не будет добавляться в конец списка.
 
  • Thank you
Reactions: orka13

Олеся

Новичок
Joined
Feb 7, 2015
Messages
13
Reaction score
0
Points
1
Спасибо большое! Кубиком знаю, действий подобных будет много, плюс все в цикле, поэтому кубиков слишком много получается. Спасибо)
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
Спасибо большое! Кубиком знаю, действий подобных будет много, плюс все в цикле, поэтому кубиков слишком много получается. Спасибо)
Если будет цикл, то тогда лучше так:
C#:
IZennoList list = project.Lists["List"]; // список проекта
string str = project.Variables["text"].Value; // переменная проекта
Random rnd = new Random();
list.Insert(rnd.Next(list.Count), str);
 

Олеся

Новичок
Joined
Feb 7, 2015
Messages
13
Reaction score
0
Points
1
C
Если будет цикл, то тогда лучше так:
C#:
IZennoList list = project.Lists["List"]; // список проекта
string str = project.Variables["text"].Value; // переменная проекта
Random rnd = new Random();
list.Insert(rnd.Next(list.Count), str);
Благодарю. Только когда делаю цикл for, рандом не меняется каждый раз, а прибавляется на 1. Теперь ищу, как обновлять каждый раз переменную rnd, чтобы цикл правильно работал.. Думала, переменная в коде сама меняется с каждым новым "прогоном" цикла, как в кубиках))
 

Олеся

Новичок
Joined
Feb 7, 2015
Messages
13
Reaction score
0
Points
1
C

Благодарю. Только когда делаю цикл for, рандом не меняется каждый раз, а прибавляется на 1. Теперь ищу, как обновлять каждый раз переменную rnd, чтобы цикл правильно работал.. Думала, переменная в коде сама меняется с каждым новым "прогоном" цикла, как в кубиках))
Разобралась, надо было вынести инициализацию rnd за цикл
 

demian

Client
Joined
Sep 26, 2011
Messages
300
Reaction score
17
Points
18
Можно ли сделать генератор доменных имен с изменяемой длинной, но чтобы не набор букв, а читаемые примерно как здесь- https://www.nic.ru/cgi/na.cgi?step=n_a.name_gen
 

LaGir

Client
Joined
Oct 1, 2015
Messages
231
Reaction score
956
Points
93
Можно ли сделать генератор доменных имен с изменяемой длинной, но чтобы не набор букв, а читаемые примерно как здесь- https://www.nic.ru/cgi/na.cgi?step=n_a.name_gen
Думаю, для этой задачи вполне можно использовать метод профиля RegenerateLogin:
C#:
//Язык генерации (Eng, Lat или Jap)
string lang = "Lat";
//Количество слогов
int sylCount = 2;

//Возвращаем сгенерированное слово
return project.Profile.RegenerateLogin(String.Format("[{0}|{1}]", lang, sylCount));
Вот какие примерно результаты могут получиться (конкретно "Lat" и 2 слога):
2017-12-15_00-18-36.png

Если нужно ещё явно задать длину в символах:
C#:
//Язык генерации (Eng, Lat или Jap)
string lang = "Lat";
//Количество слогов
int sylCount = 2;
//Длина в символах
int lenght = 5;

string s = String.Empty;
for (int i=0; i<100; i++){
    s = project.Profile.RegenerateLogin(String.Format("[{0}|{1}]", lang, sylCount));
    if (s.Length==lenght)    return s;
}
return "error";
 
  • Thank you
Reactions: Dimionix and one

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
Можно ли сделать генератор доменных имен с изменяемой длинной, но чтобы не набор букв, а читаемые примерно как здесь- https://www.nic.ru/cgi/na.cgi?step=n_a.name_gen
С использованием метода RegenerateLogin
C#:
IZennoList domainsList = project.Lists["List"]; // список доменов
string domainNameLength = "3"; // длина имени домена (количество слогов)
string domainZone = "com"; // доменная зона
int count = 100; // количество генерируемых доменов
string domainName;

for (int i = 0; i < count; i++) {
    domainName = project.Profile.RegenerateLogin(string.Format("[Eng|{0}]", domainNameLength));
    domainsList.Add(string.Format("{0}.{1}", domainName, domainZone));
}
return string.Join(Environment.NewLine, domainsList);
По теме: Генерация человекоподобных логинов

Упс, LaGir уже написал :-) Ну ладно, лишним не будет))
 

demian

Client
Joined
Sep 26, 2011
Messages
300
Reaction score
17
Points
18
Спасибо.
А как сделать генерацию без зоны, только имя и чтобы было плавающее значение слогов например 3-5.
Просто всунуть туда переменные?
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
А как сделать генерацию заданного количества доменов, без зоны, только имя и чтобы было плавающее значение слогов например 3-5.
C#:
IZennoList domainsList = project.Lists["List"]; // список доменов
int count = 100; // количество генерируемых доменов
int domainNameLength;
string domainName;
Random rnd = new Random();

for (int i = 0; i < count; i++) {
    domainNameLength = rnd.Next(3, 6); // длина имени домена (рандомное количество слогов)
    domainName = project.Profile.RegenerateLogin(string.Format("[Eng|{0}]", domainNameLength));
    domainsList.Add(domainName);
}
return string.Join(Environment.NewLine, domainsList);
 

demian

Client
Joined
Sep 26, 2011
Messages
300
Reaction score
17
Points
18
C#:
IZennoList domainsList = project.Lists["List"]; // список доменов
int count = 100; // количество генерируемых доменов
int domainNameLength;
string domainName;
Random rnd = new Random();

for (int i = 0; i < count; i++) {
    domainNameLength = rnd.Next(3, 6); // длина имени домена (рандомное количество слогов)
    domainName = project.Profile.RegenerateLogin(string.Format("[Eng|{0}]", domainNameLength));
    domainsList.Add(domainName);
}
return string.Join(Environment.NewLine, domainsList);

IZennoList domainsList = project.Lists["List"]; // список доменов ---- а это что такое? что это за список, если его нужно сгенерировать
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
IZennoList domainsList = project.Lists["List"]; // список доменов ---- а это что такое? что это за список, если его нужно сгенерировать
Список проекта, в который будут класться сгенерированные домены
 

demian

Client
Joined
Sep 26, 2011
Messages
300
Reaction score
17
Points
18
Не сочтите за наглость, а можно без списка, просто класть результат в переменную.
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
Не сочтите за наглость, а можно без списка, просто класть результат в переменную.
C#:
int count = 100; // количество генерируемых доменов
int domainNameLength;
string domainName;
Random rnd = new Random();
List<string> domainsList = new List<string>();

for (int i = 0; i < count; i++) {
    domainNameLength = rnd.Next(3, 6); // длина имени домена (рандомное количество слогов)
    domainName = project.Profile.RegenerateLogin(string.Format("[Eng|{0}]", domainNameLength));
    domainsList.Add(domainName);
}
return string.Join(Environment.NewLine, domainsList);
 
  • Thank you
Reactions: demian

demian

Client
Joined
Sep 26, 2011
Messages
300
Reaction score
17
Points
18
C#:
int count = 100; // количество генерируемых доменов
int domainNameLength;
string domainName;
Random rnd = new Random();
List<string> domainsList = new List<string>();

for (int i = 0; i < count; i++) {
    domainNameLength = rnd.Next(3, 6); // длина имени домена (рандомное количество слогов)
    domainName = project.Profile.RegenerateLogin(string.Format("[Eng|{0}]", domainNameLength));
    domainsList.Add(domainName);
}
return string.Join(Environment.NewLine, domainsList);
Подскажите, а этот код делает тоже самое? (если опустить то, что код выше генерирует список из нескольких а нижний только один)
Интересует сам процесс генерации, они идентичные или есть разница?

Code:
//Язык генерации (Eng, Lat или Jap)
string lang = "Lat";
//Количество слогов
Random rnd = new Random();
int sylCount = rnd.Next(3, 5);;
//Возвращаем сгенерированное слово
return project.Profile.RegenerateLogin(String.Format("[{0}|{1}]", lang, sylCount));
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
Подскажите, а этот код делает тоже самое? (если опустить то, что код выше генерирует список из нескольких а нижний только один)
Интересует сам процесс генерации, они идентичные или есть разница?
По сути, одно и то же. Но если докопаться до мелочей, то верхний код генерирует логины из 3-5 слогов англ. слов, а нижний - из 3-4 слогов лат. слов + ошибка в третьей строке (лишняя точка с запятой в конце) :-)
 
  • Thank you
Reactions: demian

dimanis

Client
Joined
Apr 16, 2016
Messages
196
Reaction score
110
Points
43
Привет! Други поделитесь снипетом параллельного запроса. Нужно одновременно отправить 3 GET запроса по разным адресам одного домена с разных проксей и получить ответы в 3 переменные соответственно.
 

Lagavu

Client
Joined
Dec 21, 2016
Messages
74
Reaction score
1
Points
8
Всем привет подскажите пожалуйста как с помощью сниппета объеденить множество файлов в один. Файлы Excell. У меня очень много экселеских файлов и по одному вручную соединять просто мученья.. хэлп
 

Rdenwer

Client
Joined
Oct 14, 2010
Messages
254
Reaction score
61
Points
28
Подскажите, как можно сразу добавить слово в каждую строку списка или файла?
Сейчас использую кубик взятия по одной строке из списка и сохранением в другой файл с последующим прибавления слова к этой строке.
 

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,650
Points
113
Подскажите, как можно сразу добавить слово в каждую строку списка или файла?
Сейчас использую кубик взятия по одной строке из списка и сохранением в другой файл с последующим прибавления слова к этой строке.
Code:
var list = project.Lists["имя_списка"];
var word = "слово";

lock(SyncObjects.ListSyncer)
{
    for (int i=0; i<list.Count; i++)
    {
        list[i] += word;//это в конец строки списка
        //list[i] = word + list[i];//это в начало строки
    }
}
 
  • Thank you
Reactions: Rdenwer

svaminar

Client
Joined
Aug 21, 2013
Messages
834
Reaction score
379
Points
63
Нужно управлять из одного шаблона другими.
подскажите снипет которий получает [ guid id | имена ] запущених шаблонов.

Желательно чтоб сохранить связки [ guid id | именz ] в табицу
Code:
project.Tables["TestTB"] = ZennoPoster.TasksList().ToList;
IZennoTable table = project.Tables["TestTB"];
такой код само собой ошибочний но никак не получается в цикле получить.
И подскажите, а просто по имени шаблона управлять им из друго шаблона можно ?
Или получить его ид (шаблон не тот которий пыается получить ид) и дальше уже через ид работать ?
 

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,650
Points
113
Нужно управлять из одного шаблона другими.
подскажите снипет которий получает [ guid id | имена ] запущених шаблонов.

Желательно чтоб сохранить связки [ guid id | именz ] в табицу
Code:
project.Tables["TestTB"] = ZennoPoster.TasksList().ToList;
IZennoTable table = project.Tables["TestTB"];
такой код само собой ошибочний но никак не получается в цикле получить.
И подскажите, а просто по имени шаблона управлять им из друго шаблона можно ?
Или получить его ид (шаблон не тот которий пыается получить ид) и дальше уже через ид работать ?
Code:
ZennoPoster.SetTries("имя_нужного_шаблона_с_заглавной_и_вроде_без_расширения", 50);//установить число заданий
ZennoPoster.AddTries("имя_нужного_шаблона_с_заглавной_и_вроде_без_расширения", 50);//добавить число заданий
 

svaminar

Client
Joined
Aug 21, 2013
Messages
834
Reaction score
379
Points
63
Спасибо большое за быструю реацию
но мне нужно полный комплекс комманд. Не только добавить задания.
Нужно удалять/добавлять шаблоны,
Дропать (останавливать) их,
Менять идругие настройки
 

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,650
Points
113

svaminar

Client
Joined
Aug 21, 2013
Messages
834
Reaction score
379
Points
63
я смотрел.
У меня как раз проблема в том чтоб получить для шаблона з конкретным именем его таск ид.
Дальше уже по такс ид не проблема (ну пока получается удалить/остановить шаблон)
Если нужен таск ид для шаблона з которого получаем таск ид то тоже не проблема.
Именно не могу получить для инних шаблонов добавлених в зенопостер.
Помоги мне плиз
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113
Помоги мне плиз
C#:
string projectName = "Имя_проекта"; // По имени задания (проекта)
ZennoPoster.StartTask(projectName); // запустить выполнение задания (проекта)
ZennoPoster.InterruptTask(projectName); // прервать выполнение задания (проекта)
ZennoPoster.StopTask(projectName); // остановить выполнение задания (проекта)
ZennoPoster.SetTries(projectName, 0); // задать количество выполнений
ZennoPoster.AddTries(projectName, 1); // добавить количество выполнений


Guid id = Guid.Parse(project.TaskId); // по Guid id задания (проекта)
ZennoPoster.StartTask(id);
ZennoPoster.InterruptTask(id);
ZennoPoster.StopTask(id);
ZennoPoster.SetTries(id, 0);
ZennoPoster.AddTries(id, 1);


ZennoPoster.AddTask(); // добавить новое задание (проект)
ZennoPoster.GetTaskInfo(id); // получить информацию о задании (проекте)
ZennoPoster.RemoveTask(id); // удалить задание (проект)
ZennoPoster.TasksList(); // получить список заданий (проектов)
https://help.zennolab.com/en/v5/zennoposter/5.11.7.0/webframe.html#topic519.html
 

svaminar

Client
Joined
Aug 21, 2013
Messages
834
Reaction score
379
Points
63
Dimionix ты просто боженька спасибо.

Поскажи плиз а можно получить project.TaskId п пути к файла шаблона.
Просто по имени получается если есть проеты с названиями
Remove.xmlz
Remove1xmlz
то при поиске по имени Remove иногда возвращает TaskId Remove1xmlz если он добавлен первим.
код такой
Code:
var searchName = "Remove";
var searchResult = false;
// get the task list from the ZennoPoster
var tasks = ZennoPoster.TasksList;
foreach (var tsk in tasks)
{
    // loading Xml documnt with task content
    var doc = new System.Xml.XmlDocument();
    doc.LoadXml("<Task>" + tsk + "</Task>");
    // Search task by name
    var nameElement = doc.SelectSingleNode("Task/Name");
    if(nameElement == null) continue;
    var name = nameElement.InnerText;
    // if we found our task
    if (name == searchName)
    {
        // take task id
        var idElement = doc.SelectSingleNode("Task/Id");
        if (idElement == null) continue;
        var id = Guid.Parse(idElement.InnerText);
        return id;
        searchResult = true;
        break;
    }
}
if (!searchResult)
    throw new Exception();
//Видалити поточний шаблон з постера
//var id = Guid.Parse(project.TaskId);
//var taskInfo = ZennoPoster.GetTaskInfo(id);

//var id = Guid.Parse(project.TaskId);
//ZennoPoster.RemoveTask(id);
 
Last edited:

Rdenwer

Client
Joined
Oct 14, 2010
Messages
254
Reaction score
61
Points
28
Доброй всем ночи! Подскажите, как сгенерировать числа с 1 до 30000 к примеру, каждая цифра с новой строки, по порядку, в файл zifra.txt?
 

Dimionix

Moderator
Joined
Apr 9, 2011
Messages
3,068
Reaction score
3,131
Points
113

bookray

Client
Joined
Jul 14, 2015
Messages
10
Reaction score
2
Points
3
Уважаемые, сложная задача, видимо не выполнимая. Нужен сниппет для перевода docx в html. С соблюдением заголовков, списков и абзацев.
 

Users Who Are Viewing This Thread (Total: 5, Members: 0, Guests: 5)