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

  • Автор темы Автор темы CSS
  • Дата начала Дата начала
Сниппет C#: If (обрабатывание переменной DropDown Multiselect)
Описание:
Сниппет полезен для работы с DropDown Multiselect, когда необходимо обработать значение выходной переменной. Из DropDown Multiselect берется значение переменная. Выглядит она примерно так Вариант1, Вариант2, Вариант3 и т.д.. Сниппет для начала удаляет пробелы, идущие перед запятой, а потом преобразует строку в подстроки и заносит их в список. Затем поочередно перебирает в списке получившиеся строки и если они соответствуют заданному условию выполняет указанное действие.

Код:
Развернуть Свернуть Копировать
var list = project.Lists["Список"];
string text = project.Variables["Значение переменной"].Value;

//очищаем список и обнуляем значения переменных
list.Clear();

//удаляем пробелы, идущие перед запятой
text = text.Replace(", ", ",");

//преобразование строки в подстроки с занесением в список
string[] words = text.Split(new char[] {','});
foreach (string s in words)
    {
        list.Add(s);
    }

//перебираем список и если есть совпадение, то задаем переменной значение
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list.Count; i++)
    {
        var str = list[i];
        if (str.Contains("Значение 1")) {
            project.SendInfoToLog("есть Значение 1", true);
        }
        else if (str.Contains("Значение 2")) {
            project.SendInfoToLog("есть Значение 2", true);
        }
        else if (str.Contains("Значение 3")) {
            project.SendInfoToLog("есть Значение 3", true);
        }
    }
    project.SendInfoToLog("нет", true);
}
 

Вложения

Последнее редактирование:
Сниппет C#: Authorize (авторизация на сайте)
Описание:
Данный сниппет будет полезен для авторизации на сайтах. Также его можно легко переделать и для формы регистрации. Единственное сниппет не поддерживает решение каптчи.

Код:
Развернуть Свернуть Копировать
//authorize авторизация на сайте

instance.ClearCache(); //чистим кэш
instance.ClearCookie(); //чистим куки

Tab tab = instance.ActiveTab;
if ((tab.IsVoid) || (tab.IsNull)) return -1;//проверяем на наличие открытой активной вкладки
if (tab.IsBusy) tab.WaitDownloading();//ждем полной загружки страницы
tab.Navigate("Вводим ссылку на сайт", ""); //переходим по ссылке
if (tab.IsBusy) tab.WaitDownloading();//ждем полной загружки страницы
project.SendInfoToLog("Перешли на сайт", true);

// Задержка эмуляции
instance.WaitFieldEmulationDelay();

//ищем элемент поля ввода логина
HtmlElement userlogin = instance.ActiveTab.FindElementByAttribute("Ввод тега", "Ввод атрибута", "Ввод значения атрибута", "text или regex", 0);
//проверяем на наличие элемента
if (userlogin.IsVoid) return -1;
//вводим в поле значение из переменной
userlogin.SetValue(project.Variables["Значение переменной логина"].Value, instance.EmulationLevel, false);
project.SendInfoToLog("Логин успешно введен", true);

//ищем элемент поля ввода пароля
HtmlElement userpassword = instance.ActiveTab.FindElementByAttribute("Ввод тега", "Ввод атрибута", "Ввод значения атрибута", "text или regex", 0);
//проверяем на наличие элемента
if (userpassword.IsVoid) return -1;
//вводим в поле значение из переменной
userpassword.SetValue(project.Variables["Значение переменной пароля"].Value, instance.EmulationLevel, false);
project.SendInfoToLog("Пароль успешно введен", true);

//ищем кнопку авторизации
HtmlElement autobutton = instance.ActiveTab.FindElementByAttribute("Ввод тега", "Ввод атрибута", "Ввод значения атрибута", "text или regex", 0);
//проверяем на наличие элемента
if (autobutton.IsVoid) return -1;
//нажимаем на кнопку авторизации
autobutton.Click();
project.SendInfoToLog("Авторизация прошла успешно", true);
 

Вложения

Ребят, не кидайте камнями. Нужен сниппет под zennodroid для разгадывания Funcaptcha. Продайте или укажите к кому обратиться. Всю голову сломал уже...
 
Как модифицировать данный код что-бы обработка списка велась по нескольким регурякам

C#:
Развернуть Свернуть Копировать
/*СПИСОК - удалить элементы, удовлетворяющие регулярному выражению*/
var list = project.Lists["List"];
Regex reg = new Regex("Регулярка");
/* следующая ргулярка */
Regex reg_2 = new Regex("Регулярка");
/* следующая ргулярка */
Regex reg_3 = new Regex("Регулярка");

lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list.Count; i++)
    {
        string str = list[i];
        if (reg.IsMatch(str))
        {
            list.RemoveAt(i);
            i--;
        }
    }
}
 
Последнее редактирование:
попробуй через или
примерно так если правильно понял

C#:
Развернуть Свернуть Копировать
/*СПИСОК - удалить элементы, удовлетворяющие регулярному выражению*/
var list = project.Lists["List"];
Regex reg = new Regex("Регулярка");
/* следующая ргулярка */
Regex reg_2 = new Regex("Регулярка");
/* следующая ргулярка */
Regex reg_3 = new Regex("Регулярка");
lock (SyncObjects.ListSyncer)
{
    for (int i = 0; i < list.Count; i++)
    {
        string str = list[i];
        if (reg.IsMatch(str) || reg_2.IsMatch(str) || reg_3.IsMatch(str))
        {
            list.RemoveAt(i);
            i--;
        }
    }
}
 
  • Спасибо
Реакции: inotoxic
Помогите плиз извлечь квадратный корень из числа(переменной) :)
 
Помогите плиз извлечь квадратный корень из числа(переменной) :-)

C#:
Развернуть Свернуть Копировать
var number = project.Variables["number"].Value;//"43564";

double a = Convert.ToDouble(number);
a = Math.Sqrt(a);
return a.ToString();//Результат: 208,719908010712
 
  • Спасибо
Реакции: DmKa
Огромное спасибо! работает.
 
Понимаю, что нужно использовать TickCount, но в коде пока только начальные представления. Вообщем необходимо, чтобы после некоторых действий, один из следующих кубиков сработал через определенный период в некотором диапазоне, к примеру 5-7 сек. Пауза не подходит.
Прошу помочь
 
Понимаю, что нужно использовать TickCount, но в коде пока только начальные представления. Вообщем необходимо, чтобы после некоторых действий, один из следующих кубиков сработал через определенный период в некотором диапазоне, к примеру 5-7 сек. Пауза не подходит.
Прошу помочь

а что в коде как если не паузой ?
как то недопонимаю я что имено надо, поставь рандомную паузу в том же кубике, ну если пауза неустраивает, закрой зенопостер и заново его запусти
 
Зенно будет работать в связке с другой программой и пауза зенно это относительная вещь, от какого-то момента до срабатывания кубика. Пример в 5-7 сек. условен, правильно было бы указывать миллисекунды.
Вообщем привязка идёт на реальное время исполнения.
 
Зенно будет работать в связке с другой программой и пауза зенно это относительная вещь, от какого-то момента до срабатывания кубика. Пример в 5-7 сек. условен, правильно было бы указывать миллисекунды.
Вообщем привязка идёт на реальное время исполнения.

вообще ничего не понимаю что надо, ну и поставь цикл в милисекундах в коде
 
)
Допустим на старте получил значение TickCount = 100, шагами позже подходит момент для нужного мне кубика, который должен сработать в промежутке TickCount = 110, 115.
Как это должно выглядеть в коде - вопрос
 
Последнее редактирование:
кто подскажет как можно из такого предложения к примеру

Про любовь. Только для взрослых (2017) - Трейлер заменить на такое регуляркой или снипет

Про\ любовь\.\ Только\ для\ взрослых\ \(2017\)\ \ -\ Трейлер
 
кто подскажет как можно из такого предложения к примеру

Про любовь. Только для взрослых (2017) - Трейлер заменить на такое регуляркой или снипет

Про\ любовь\.\ Только\ для\ взрослых\ \(2017\)\ \ -\ Трейлер
обработка текста --- эскейп строки
 
  • Спасибо
Реакции: mladenec45
del
 
Последнее редактирование:
кто подскажет - есть папка "мебель" в ней 10 папок "стулья" "столы" "кухня" и т.д как запаковать каждую папку и удалить те что паковались .

пс. или кто подскажет пару таких примеров ( как запаковывать папки, залить пару фото на фотохостинг и т.д за небольшое "вознаграждение " )
 
Здравствуйте, подскажите пожалуйста как сделать.
Есть список с "BUF" данными, пример:

Привет1<br>
Привет2<br>

Нужно получить на выходе:

Привет1
Привет2

То есть, заменить в каждой строчке по регулярным выражением "<br>".

Нашел как заменить просто значения при нахождение текста в строчке, а нужно именно заменить то что строчке

Код:
Развернуть Свернуть Копировать
var sourceList = project.Lists["BUF"];
var parserRegex = new Regex("<br>.*?"); // Вот регулярка на поиск чисел
lock(SyncObjects.ListSyncer)
{
    for(int i=0; i < sourceList.Count; i++) // Пробегаемся по списку
    {
        if (parserRegex.IsMatch(sourceList[i])) // Если регулярка срабатывает, то..
        {
            sourceList[i]=""; // Заменяем текущий элемент
        }
    }
}
 
столкнулся с ситуацией - у нас есть замкнутый цикл где мы получаем в одной и той же переменной разные значения - эти значения легко записать в список - но нужно все эти значения получить в одной строчке - есть вариант обьеденить элементы списка-есть такой екшен в операциях над списком- (если записать все значения в список) - но он требует физической привязки к существующему списку на компьютере и это отменяет многопоток -
видимо без си шарпа из этой ситуации легко не выйти -
 
Привет всем. Помогите решить проблему с подсчетом вхождений в вложенном цикле.
Есть список в котором берется строка с удалением и в цикле прогоняется по второму столбцу таблицы, на предмет совпадений, если есть совпадение +1 в переменную count и запись результата инкремента в таблицу ResultTable.
Но счетчик count записывает всегда 1 вместо суммы совпадений, перепробовал много вариантов и никак.. Вариант подсчета в снипете нормально работает только без внешнего цикла.

Код:
Развернуть Свернуть Копировать
var DataTables = project.Tables["DataTables"];
var ResultTable = project.Tables["ResultTable"];
var CatIdsList = project.Lists["CatIdsList"];

for(int i = 0; i < CatIdsList.Count; i++)

    {
        int count = 0; //Переменная счетчика
      //string CatId = "45613";
        string CatId = CatIdsList.GetItem("0", true); //Берем из списка Id категории с удалением
    
        for(int j = 0; j < DataTables.RowCount; j++)
        {
          var cells = DataTables.GetRow(j).ToArray(); //Строка таблици в массив
      
            //Счетчик совпадений
            if(cells[2] == CatId)
            {
                   count++;
               //++count;
               //count = count + 1;  
          
            }
            if(j == TableCount - 1)
            {
             string CatInfo = CatId + ":" + count;
             ResultTable.ColSeparator = ":";
             ResultTable.AddRow(CatInfo);
            }
      
        }
      
          
    }
 
Последнее редактирование:
Но счетчик count записывает всегда 1 вместо суммы совпадений, перепробовал много вариантов и никак.. Вариант подсчета в снипете нормально работает только без внешнего цикла.
Объявление переменной count нужно вынести за пределы внешнего цикла. Сейчас на каждой итерации внешнего цикла она объявляется заново, заново становится равна 0.
C#:
Развернуть Свернуть Копировать
var DataTables = project.Tables["DataTables"];
var ResultTable = project.Tables["ResultTable"];
var CatIdsList = project.Lists["CatIdsList"];

int count = 0; //Переменная счетчика

for(int i = 0; i < CatIdsList.Count; i++)
{
    //string CatId = "45613";
    string CatId = Items.GetItem("0", true); //Берем из списка Id категории с удалением
   
    for(int j = 0; j < DataTables.RowCount; j++)
    {
        var cells = DataTables.GetRow(j).ToArray(); //Строка таблици в массив
       
        //Счетчик совпадений
        if(cells[2] == CatId)
        {
            count++;
            //++count;
            //count = count + 1; 
        }
        if(j == TableCount - 1)
        {
            string CatInfo = CatId + ":" + count;
            ResultTable.ColSeparator = ":";
            ResultTable.AddRow(CatInfo);
        }
    }
}
 
а как он вообще работает ?
это переменные Items - TableCount ?
 
Объявление переменной count нужно вынести за пределы внешнего цикла. Сейчас на каждой итерации внешнего цикла она объявляется заново, заново становится равна 0.
C#:
Развернуть Свернуть Копировать
var DataTables = project.Tables["DataTables"];
var ResultTable = project.Tables["ResultTable"];
var CatIdsList = project.Lists["CatIdsList"];

int count = 0; //Переменная счетчика

for(int i = 0; i < CatIdsList.Count; i++)
{
    //string CatId = "45613";
    string CatId = Items.GetItem("0", true); //Берем из списка Id категории с удалением
  
    for(int j = 0; j < DataTables.RowCount; j++)
    {
        var cells = DataTables.GetRow(j).ToArray(); //Строка таблици в массив
      
        //Счетчик совпадений
        if(cells[2] == CatId)
        {
            count++;
            //++count;
            //count = count + 1;
        }
        if(j == TableCount - 1)
        {
            string CatInfo = CatId + ":" + count;
            ResultTable.ColSeparator = ":";
            ResultTable.AddRow(CatInfo);
        }
    }
}
Она должна обьявляться заново. При каждой итерации внешнего цикла берется новое значение из списка для подсчета совпадений в столбце таблицы. Вывод переменной count за пределы внешнего цикла не дает результата.
 
Она должна обьявляться заново. При каждой итерации внешнего цикла берется новое значение из списка для подсчета совпадений в столбце таблицы. Вывод переменной count за пределы внешнего цикла не дает результата.
Тогда либо проверяем данные в таблице (может там сумма и должна равна единице), либо ищем несостыковки:
прогоняется по второму столбцу таблицы
//Счетчик совпадений
if(cells[2] == CatId)
cells[2] - это обращение к третьему столбцу, а не ко второму (нумерация в массиве с 0).
 
cells[2] - это обращение к третьему столбцу, а не ко второму (нумерация в массиве с 0).
Номер столбца правильный, описал не правильно.
Вы правы на счет суммы в 1. снипет подсчета дублей рабочий.
Воспользовался снипетом из форума для удаления дублей из списка, а он удалял все, что больше одного раза повторялось в списке. На выходе получалось десяток строк, что вполне нормально и сутки в трубу ушли))
Извиняюсь за украденное время.
 
Кто знает, подскажите плиз, как через снипет экспортировать входные настройки в .xml файл?
 
Кто знает, подскажите плиз, как через снипет экспортировать входные настройки в .xml файл?
C#:
Развернуть Свернуть Копировать
string path = @"D:\settings.xml";    //Путь экспорта
File.WriteAllText(path, ZennoPoster.ExportInputSettings(new Guid(project.TaskId)));
(!) Экспорт предназначен для запуска в ZennoPoster, не в ProjectMaker (в PM сохраняет пустой файл).
 
  • Спасибо
Реакции: Severip
LaGir, спасибо! Все завелось с первого раза.
А я все не мог понять, почему пустая переменная, а оказывается все дело в ProjectMaker.
 
Нужна идея как реализовать с JavaScript, document.write.
Код:
Развернуть Свернуть Копировать
YumoqWRI='<a href';RsFTK='="te';BMcWXgxmuu='l: 8961';xVCuBEvDB='35470';VZxxr='99">8&n';xHaaRHG='bsp;(9';OPreKp='61)';QSrJgVdk='&nbsp';OdQdTfNF=';354-70';otpTTB='99&nb';VNNFjcw='sp;<';sjdTARn='/a>';gNvMVZ='';WraAsgC='';GQged='';JQCgCyMF='';chVGXXBkd='';ZCWaSh='';njaOmu='';Vzsmw='';iqFYOTkaGV='';document.write(YumoqWRI+RsFTK+BMcWXgxmuu+xVCuBEvDB+VZxxr+xHaaRHG+OPreKp+QSrJgVdk+OdQdTfNF+otpTTB+VNNFjcw+sjdTARn+gNvMVZ+WraAsgC+GQged+JQCgCyMF+chVGXXBkd+ZCWaSh+njaOmu+Vzsmw+iqFYOTkaGV+'');
Делал на скорую руку через костыль в браузере, но покоя не даёт перенос в шарп.
 

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