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

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Помогите, вроде не должно быть сложно.. Текст из переменной вставить рандомно в список, т.е не в начало или конец, а именно в позицию рандом. Целый день сижу над этим...
C#:
IZennoList list = project.Lists["List"]; // список проекта
string str = project.Variables["text"].Value; // переменная проекта
list.Insert(new Random().Next(list.Count), str);
Хотя, можно и стандартным кубиком "Операции над списком" > "Добавить текст", выбрать "В позицию", прописать Random (регистр не важен). Единственное отличие от кода это то, что в данном случае строка не будет добавляться в конец списка.
 
  • Спасибо
Реакции: orka13

Олеся

Новичок
Регистрация
07.02.2015
Сообщения
13
Благодарностей
0
Баллы
1
Спасибо большое! Кубиком знаю, действий подобных будет много, плюс все в цикле, поэтому кубиков слишком много получается. Спасибо)
 

Dimionix

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

Олеся

Новичок
Регистрация
07.02.2015
Сообщения
13
Благодарностей
0
Баллы
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, чтобы цикл правильно работал.. Думала, переменная в коде сама меняется с каждым новым "прогоном" цикла, как в кубиках))
 

Олеся

Новичок
Регистрация
07.02.2015
Сообщения
13
Благодарностей
0
Баллы
1
C

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

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Можно ли сделать генератор доменных имен с изменяемой длинной, но чтобы не набор букв, а читаемые примерно как здесь- https://www.nic.ru/cgi/na.cgi?step=n_a.name_gen
 

LaGir

Client
Регистрация
01.10.2015
Сообщения
211
Благодарностей
852
Баллы
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";
 
  • Спасибо
Реакции: Dimionix и one

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
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 уже написал :-) Ну ладно, лишним не будет))
 
  • Спасибо
Реакции: Igorii, LaGir и one

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Спасибо.
А как сделать генерацию без зоны, только имя и чтобы было плавающее значение слогов например 3-5.
Просто всунуть туда переменные?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
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
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
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
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
IZennoList domainsList = project.Lists["List"]; // список доменов ---- а это что такое? что это за список, если его нужно сгенерировать
Список проекта, в который будут класться сгенерированные домены
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Не сочтите за наглость, а можно без списка, просто класть результат в переменную.
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
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);
 
  • Спасибо
Реакции: demian

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
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);
Подскажите, а этот код делает тоже самое? (если опустить то, что код выше генерирует список из нескольких а нижний только один)
Интересует сам процесс генерации, они идентичные или есть разница?

Код:
//Язык генерации (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
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Подскажите, а этот код делает тоже самое? (если опустить то, что код выше генерирует список из нескольких а нижний только один)
Интересует сам процесс генерации, они идентичные или есть разница?
По сути, одно и то же. Но если докопаться до мелочей, то верхний код генерирует логины из 3-5 слогов англ. слов, а нижний - из 3-4 слогов лат. слов + ошибка в третьей строке (лишняя точка с запятой в конце) :-)
 
  • Спасибо
Реакции: demian

dimanis

Client
Регистрация
16.04.2016
Сообщения
195
Благодарностей
110
Баллы
43
Привет! Други поделитесь снипетом параллельного запроса. Нужно одновременно отправить 3 GET запроса по разным адресам одного домена с разных проксей и получить ответы в 3 переменные соответственно.
 

Lagavu

Client
Регистрация
21.12.2016
Сообщения
74
Благодарностей
1
Баллы
8
Всем привет подскажите пожалуйста как с помощью сниппета объеденить множество файлов в один. Файлы Excell. У меня очень много экселеских файлов и по одному вручную соединять просто мученья.. хэлп
 

Rdenwer

Client
Регистрация
14.10.2010
Сообщения
254
Благодарностей
61
Баллы
28
Подскажите, как можно сразу добавить слово в каждую строку списка или файла?
Сейчас использую кубик взятия по одной строке из списка и сохранением в другой файл с последующим прибавления слова к этой строке.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 606
Благодарностей
4 597
Баллы
113
Подскажите, как можно сразу добавить слово в каждую строку списка или файла?
Сейчас использую кубик взятия по одной строке из списка и сохранением в другой файл с последующим прибавления слова к этой строке.
Код:
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];//это в начало строки
    }
}
 
  • Спасибо
Реакции: Rdenwer

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Нужно управлять из одного шаблона другими.
подскажите снипет которий получает [ guid id | имена ] запущених шаблонов.

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

doc

Client
Регистрация
30.03.2012
Сообщения
8 606
Благодарностей
4 597
Баллы
113
Нужно управлять из одного шаблона другими.
подскажите снипет которий получает [ guid id | имена ] запущених шаблонов.

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

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Спасибо большое за быструю реацию
но мне нужно полный комплекс комманд. Не только добавить задания.
Нужно удалять/добавлять шаблоны,
Дропать (останавливать) их,
Менять идругие настройки
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 606
Благодарностей
4 597
Баллы
113
Спасибо большое за быструю реацию
но мне нужно полный комплекс комманд. Не только добавить задания.
Нужно удалять/добавлять шаблоны,
Дропать (останавливать) их,
Менять идругие настройки
https://help.zennolab.com/en/v5/zennoposter/5.10.6.0/webframe.html#topic1.html ищи
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
я смотрел.
У меня как раз проблема в том чтоб получить для шаблона з конкретным именем его таск ид.
Дальше уже по такс ид не проблема (ну пока получается удалить/остановить шаблон)
Если нужен таск ид для шаблона з которого получаем таск ид то тоже не проблема.
Именно не могу получить для инних шаблонов добавлених в зенопостер.
Помоги мне плиз
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
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
Регистрация
21.08.2013
Сообщения
834
Благодарностей
378
Баллы
63
Dimionix ты просто боженька спасибо.

Поскажи плиз а можно получить project.TaskId п пути к файла шаблона.
Просто по имени получается если есть проеты с названиями
Remove.xmlz
Remove1xmlz
то при поиске по имени Remove иногда возвращает TaskId Remove1xmlz если он добавлен первим.
код такой
Код:
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);
 
Последнее редактирование:

Rdenwer

Client
Регистрация
14.10.2010
Сообщения
254
Благодарностей
61
Баллы
28
Доброй всем ночи! Подскажите, как сгенерировать числа с 1 до 30000 к примеру, каждая цифра с новой строки, по порядку, в файл zifra.txt?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113

bookray

Client
Регистрация
14.07.2015
Сообщения
10
Благодарностей
2
Баллы
3
Уважаемые, сложная задача, видимо не выполнимая. Нужен сниппет для перевода docx в html. С соблюдением заголовков, списков и абзацев.
 

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