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

Sergey2580

Новичок
Регистрация
12.09.2021
Сообщения
7
Благодарностей
0
Баллы
1
Добрый день, подскажите как можно реализовать, чтоб каждый раз при выполнении скрипта на сайт грузились разные фото например из папки
 

Markoonij

Client
Регистрация
13.10.2020
Сообщения
68
Благодарностей
3
Баллы
8
В переменной dom_ids лежит DOM страницы.
Нужно из этой переменной xpath'ем выдернуть значение и положить в переменную sport.
Подскажите, как это можно реализовать.
Ребята, помогите, пожалуйста, с этим вопросом!
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 433
Благодарностей
1 280
Баллы
113

Markoonij

Client
Регистрация
13.10.2020
Сообщения
68
Благодарностей
3
Баллы
8
Тут снипет толком не нужен, достаточно кубиком - Парсить.
Инструкция xpath.
Логика такая: в начале работы шаблона открывается страница и ее DOM ложиться в переменную dom_ids После этого страница закрывается и необходимые значения уже берутся xpath'ем из этой переменной.
 

eksin

Client
Регистрация
09.12.2010
Сообщения
62
Благодарностей
28
Баллы
18
Доброй ночи, любители Зенки и С#
помогите записать вывод в данные таблицы (csv, данные - через точку с запятой).
сейчас вывод идёт в лог, а нужно эти же данные записать в файл(*.csv)

к примеру:
первая строка таблицы: img1(fname);true(answer.Name);false(answer.Score)
вторая строка таблицы: img2(fname);true(answer.Name);false(answer.Score)
третья строка таблицы: img3(fname);true(answer.Name);false(answer.Score)
и тд...

C#:
var fs = Helper.GetFotoService().service;
var list = Directory.GetFiles(@"D:\ML\repos\","*.jpg");
foreach (var f in list)
{
    var answer = fs.CheckFoto(@f);
    var fname = Path.GetFileName(f);
    
    project.SendInfoToLog(
        fname+" "+
        answer.Name + ":" + answer.Score
    );
}
 

daVinchi

Client
Регистрация
11.01.2019
Сообщения
59
Благодарностей
64
Баллы
18
помогите записать вывод в данные таблицы (csv, данные - через точку с запятой).
сейчас вывод идёт в лог, а нужно эти же данные записать в файл(*.csv)
C#:
List<string> newList = new List<string>(); // Список
string pathToFile = @"d:\result.csv"; // Путь + файл для сохранения результата

var fs = Helper.GetFotoService().service;
var list = Directory.GetFiles(@"D:\ML\repos\","*.jpg");

foreach (var f in list)
{
    var answer = fs.CheckFoto(@f);
    var fname = Path.GetFileName(f);
   
    string result = fname + ";" + answer.Name + ";" + answer.Score;
    project.SendInfoToLog(result);
   
    newList.Add(result);
}

File.AppendAllLines(pathToFile, newList, Encoding.UTF8); // Сохранение списка в файл
 
Последнее редактирование:
  • Спасибо
Реакции: eksin

baracuda

Client
Регистрация
19.06.2013
Сообщения
733
Благодарностей
247
Баллы
43
столкнулся с задачей.
есть пароль 837432874(a) нужно сравнение. кроме как количеству знаков лучше идеи нет. но после ввода он превращается в •••••••••••••(b)
подскажите как на c# такое реализовать в одном кубике ?
 
Последнее редактирование:
  • Спасибо
Реакции: udder

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
123
Баллы
43
помогите переделать
вот код для соединения двух json в один, из двух разных переменных
а мне надо чтобы он последовательно брал json'ы из списка
C#:
JObject o1 = JObject.Parse(project.Variables["json1"].Value);
JObject o2 = JObject.Parse(project.Variables["json2"].Value);

o1.Merge(o2, new JsonMergeSettings
{
    // union array values together to avoid duplicates
    MergeArrayHandling = MergeArrayHandling.Union
});

string json = o1.ToString();
project.Variables["merged"].Value = json;
т.е. берем первую строку - склеиваем со второй, полученный результат уже с третьей, и так далее
 
Последнее редактирование:
  • Спасибо
Реакции: udder

Markoonij

Client
Регистрация
13.10.2020
Сообщения
68
Благодарностей
3
Баллы
8
помогите со снипетом:
Нужно сравнить первые два символа одной переменной с последними двумя символами другой переменной. Если равны, то по зеленой, если нет, то по красной.

Знаю, что можно на кубиках реализовать, но хотелось бы 1 снипетом обойтись.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 595
Баллы
113
помогите со снипетом:
Нужно сравнить первые два символа одной переменной с последними двумя символами другой переменной. Если равны, то по зеленой, если нет, то по красной.

Знаю, что можно на кубиках реализовать, но хотелось бы 1 снипетом обойтись.
C#:
var str1 = project.Variables["переменная1"].Value;
var str2 = project.Variables["переменная2"].Value;
if (str1.Substring(0, 2) != str2.Substring(str1.Length - 2))
    throw new Exception();
 

Reysh

Client
Регистрация
02.12.2018
Сообщения
198
Благодарностей
132
Баллы
43
помогите со снипетом:
Нужно сравнить первые два символа одной переменной с последними двумя символами другой переменной. Если равны, то по зеленой, если нет, то по красной.

Знаю, что можно на кубиках реализовать, но хотелось бы 1 снипетом обойтись.
C#:
 string str1 = project.Variables["str1"].Value;
 string str2 = project.Variables["str2"].Value;
 
if(str1.Substring(0,2) == str2.Substring(str2.Length - 2))
{
    return 0;
}
else throw new Exception("Символы не равны!");
 
  • Спасибо
Реакции: Ilshakin и Markoonij

Markoonij

Client
Регистрация
13.10.2020
Сообщения
68
Благодарностей
3
Баллы
8
C#:
var str1 = project.Variables["переменная1"].Value;
var str2 = project.Variables["переменная2"].Value;
if (str1.Substring(0, 2) != str2.Substring(str1.Length - 2))
    throw new Exception();
Спасибо, но почему-то не работает:
C#:
var str1 = project.Variables["yesterday1"].Value;
var str2 = project.Variables["yesterday2"].Value;
if (str1.Substring(0, 2) != str2.Substring(str1.Length - 2))
    throw new Exception();
yesterday1: 2021-10-14
yesterday2: 14. Okt. 2021
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 605
Благодарностей
4 595
Баллы
113
Спасибо, но почему-то не работает:
C#:
var str1 = project.Variables["yesterday1"].Value;
var str2 = project.Variables["yesterday2"].Value;
if (str1.Substring(0, 2) != str2.Substring(str1.Length - 2))
    throw new Exception();
yesterday1: 2021-10-14
yesterday2: 14. Okt. 2021
перечитай своё тз)
 
  • Спасибо
Реакции: Ilshakin

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 758
Благодарностей
2 392
Баллы
113
Спасибо, но почему-то не работает:
C#:
var str1 = project.Variables["yesterday1"].Value;
var str2 = project.Variables["yesterday2"].Value;
if (str1.Substring(0, 2) != str2.Substring(str1.Length - 2))
    throw new Exception();
yesterday1: 2021-10-14
yesterday2: 14. Okt. 2021
В переменную yesterday1 нужно подать 14. Okt. 2021, а в переменную yesterday2 подать 2021-10-14 (короче поменять местами содержимое).
Или переписать код так, чтобы посмотреть какие-то промежуточные результаты (чтобы было понятно что с чем сравнивается.

Пример:
C#:
string t1 = "2021-10-14";
string t2 = "14. Okt. 2021";

char[] xx = t1.Take(2).ToArray(); // Взяли первых 2 символа
char[] yy = t2.Reverse().Take(2).Reverse().ToArray(); // Взяли последних 2 символа
bool check = new String(xx) == new String(yy); // Сравнили...

project.SendInfoToLog(string.Format("x={0}; y={1}; x==y: {2}", new String(xx), new String(yy), check)); // Посмотрели в логе

if(!check) throw new Exception("Не равны"); // Выходим по красной
Хотя... Если в строках находятся даты - то сравнивать их нужно наверно как даты, а не строки...
 
  • Спасибо
Реакции: Markoonij

trecho

Client
Регистрация
12.07.2018
Сообщения
171
Благодарностей
123
Баллы
43
помогите переделать
вот код для соединения двух json в один, из двух разных переменных
а мне надо чтобы он последовательно брал json'ы из списка
C#:
JObject o1 = JObject.Parse(project.Variables["json1"].Value);
JObject o2 = JObject.Parse(project.Variables["json2"].Value);

o1.Merge(o2, new JsonMergeSettings
{
    // union array values together to avoid duplicates
    MergeArrayHandling = MergeArrayHandling.Union
});

string json = o1.ToString();
project.Variables["merged"].Value = json;
т.е. берем первую строку - склеиваем со второй, полученный результат уже с третьей, и так далее
C#:
JObject json = new JObject();
var jsons = project.Lists["json"];
foreach(string s in jsons) {
    try {
        json.Merge(JObject.Parse(s), new JsonMergeSettings {
            // union array values together to avoid duplicates
            MergeArrayHandling = MergeArrayHandling.Union
        });
    } catch {}
};

string merged = json.ToString();
return merged;
 

vrb-by

Client
Регистрация
27.02.2016
Сообщения
128
Благодарностей
8
Баллы
18
Добрый день! Помогите решить задачу:
Нужен аналог кубика (DOM парсить всё, в список, по регулярке) но с условием чтобы в список добавлялись строки+значение переменной1+значение переменной2.
 

Wide

Client
Регистрация
04.02.2013
Сообщения
943
Благодарностей
252
Баллы
63
Помогите плз снипет подправить, на частичное вхождение. Иначе мне только с костылями, беру кубиком из списка, потом снипету передаю переменную и он уже ищет. Очень долго, списки по несколько гб.
C#:
// Взять номер строки первого вхождения
var list = project.Lists["Характеристики"];
string str = project.Variables["v33"].Value;
string numStr = string.Empty;
for (int i = 0; i < list.Count; i++)
{
    if (list[i].Contains(str))
        return i;
}
return -1;
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 383
Баллы
113
Помогите плз снипет подправить, на частичное вхождение. Иначе мне только с костылями, беру кубиком из списка, потом снипету передаю переменную и он уже ищет. Очень долго, списки по несколько гб.
Зема, так попробуй
C#:
var list = project.Lists["Характеристики"];
string str = project.Variables["v33"].Value;

return list.IndexOf(list.AsParallel().AsOrdered().Where(x=>x.Contains(str)).FirstOrDefault());
 
  • Спасибо
Реакции: Wide

Wide

Client
Регистрация
04.02.2013
Сообщения
943
Благодарностей
252
Баллы
63
Зема, так попробуй
C#:
var list = project.Lists["Характеристики"];
string str = project.Variables["v33"].Value;

return list.IndexOf(list.AsParallel().AsOrdered().Where(x=>x.Contains(str)).FirstOrDefault());
Благодарю, то что нужно. Спасибо огромное!
 

Markoonij

Client
Регистрация
13.10.2020
Сообщения
68
Благодарностей
3
Баллы
8
Ребятя, подскажите, пожалуйста, снипет, который генерит рандомные значения вот в таком формате:
буквенноцифровое значение [8 символов]-[4 символа]-[4 символа]-[4 символа]-[12 символов]

Пример:
C#:
af643901-f626-4c31-a14f-d74b2064440a
81314137-0c36-468c-ba9b-3f40df96c2af
669a1570-0a5c-4802-933a-3c80bfd86123
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 383
Баллы
113

Zheka84

Client
Регистрация
13.10.2018
Сообщения
159
Благодарностей
24
Баллы
18
Друзья, подскажите пожалуйста, может уже есть в доступе сниппет.
Есть файл, мне нужно в нём регуляркой найти текст и заменить на свой. Заранее премного благодарен за помощь.
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 433
Благодарностей
1 280
Баллы
113
Друзья, подскажите пожалуйста, может уже есть в доступе сниппет.
Есть файл, мне нужно в нём регуляркой найти текст и заменить на свой. Заранее премного благодарен за помощь.
Файл - привязываете к списку - список обьеденить в переменную и обрабатываете.
85738

C#:
// Текст для обработки
string text = project.ExecuteMacro("Жил был Василий и у него Была Собака!");
// Обработка текста "Замена" Была на слово Есть
return Macros.TextProcessing.Replace(text, @"(?<=него\ ).*?(?=\ Со)", "Есть!", "Regex", "All");
 
  • Спасибо
Реакции: Zheka84

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
741
Баллы
113
Парни, подскажите пожалуйста, как сделать так, чтобы несколько сниппетов, в один кубик.
У меня шаблон, там штук 70 кубиков с регулярными выражениями, кубики обработка текста, скриншот покажу, лучше.
1637496116984.png
Вчера переделывал шаблон, и догадался, а оказывается там еще можно конвертировать в C#

C#:
// Текст для обработки
string text = project.ExecuteMacro(project.Variables["title"].Value);
var errorIfEmpty = true;
var regexGroups = Macros.TextProcessing.Regex(text, @"\d+\s+–\s+часть|часть\s+–\s+\d+", "0");
if (regexGroups.Count == 0)
{
    if (errorIfEmpty) throw new Exception();
}
else
{
    project.Variables["series"].Value = regexGroups[0].FirstOrDefault();
}
C#:
Мне все это нужно разместить в одном кубике, сперва один код отрабатывает, тот что выше, если результат нашелся, то вернул этот результат в переменную, если не нашелся, отрабатывает такой же кубик что и выше, но уже он будет с другими регулярками.
 

Zheka84

Client
Регистрация
13.10.2018
Сообщения
159
Благодарностей
24
Баллы
18
Файл - привязываете к списку - список обьеденить в переменную и обрабатываете.

C#:
// Текст для обработки
string text = project.ExecuteMacro("Жил был Василий и у него Была Собака!");
// Обработка текста "Замена" Была на слово Есть
return Macros.TextProcessing.Replace(text, @"(?<=него\ ).*?(?=\ Со)", "Есть!", "Regex", "All");
спасибо, но немного не то, мне нужно всё одним кодом, без дополнительных кубиков.
 

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
741
Баллы
113
Вроде то что ищешь
C#:
https://zennolab.com/discussion/threads/poisk-zamena-v-spiske.18675/
/* ЗАМЕНА ЭЛЕМЕНТОВ В СПИСКЕ ПО РЕГУЛЯРНОМУ ВЫРАЖЕНИЮ */

// Добавить в OwnCode (Общий код) в конце:
/* namespace ZennoHelpers
{
    public class Locker
    {
        public static object CustomListSyncer = new object();
    }
} */

// получаем список, в котором будем искать
var sourceList = project.Lists["SourceList"];
 
 // Регулярное выражение по поиску чисел
var parserRegex = new Regex("\\d{1,2}");
 
lock(ZennoHelpers.Locker.CustomListSyncer)
{
    // Пробегаемся по списку
    for(int i=0; i < sourceList.Count; i++)
    {
        // Если элемент соответствует регулярному выражению
        if (parserRegex.IsMatch(sourceList[i]))
        {
            // Заменяем текущий элемент на REPLACED
            sourceList[i]= "REPLACED";
        }
    }
}
Друзья, подскажите пожалуйста, может уже есть в доступе сниппет.
Есть файл, мне нужно в нём регуляркой найти текст и заменить на свой. Заранее премного благодарен за помощь.
 
  • Спасибо
Реакции: Zheka84

volody00

Client
Регистрация
06.09.2016
Сообщения
792
Благодарностей
810
Баллы
93
Парни, подскажите пожалуйста, как сделать так, чтобы несколько сниппетов, в один кубик.
C#:
string text = string.Empty, result=string.Empty, regul=string.Empty;

//копируешь всегда этот кусок (под каждый твой кубик). Что надо менять:

//title - имя переменной, в которой будем искать совпадение
//вася - твоя регулярка
//series - имя переменной, куда вставляем результат, если он найден с помощью регулярки

text = project.ExecuteMacro(project.Variables["title"].Value);
regul = @"вася";

result = Regex.Match(text, regul).Value;
if(result.Length > 0) project.Variables["series"].Value = result;
result = string.Empty;
 
  • Спасибо
Реакции: Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
741
Баллы
113
Может я неправильно сделал, ошибка получилась
Компиляция кода действия id: 55b440e3-ae3a-4918-bcbc-d9c1775fbaa7 группы действий id: 3426018c-13dc-4adf-b306-9549e4881cfc Ошибка в действии "CS0128" "A local variable or function named 'text' is already defined in this scope". [Строка: 16; Cтолбец: 8]

1637498822890.png
Если не одного совпадения нет, то в конце он код должен завершиться ошибкой (но сейчас там было совпадение) или в переменную, что-то отдать, но лучше ошибкой
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 683
Баллы
113
Может я неправильно сделал, ошибка получилась
Компиляция кода действия id: 55b440e3-ae3a-4918-bcbc-d9c1775fbaa7 группы действий id: 3426018c-13dc-4adf-b306-9549e4881cfc Ошибка в действии "CS0128" "A local variable or function named 'text' is already defined in this scope". [Строка: 16; Cтолбец: 8]

Посмотреть вложение 85745
Если не одного совпадения нет, то в конце он код должен завершиться ошибкой (но сейчас там было совпадение) или в переменную, что-то отдать, но лучше ошибкой
там написано, копируешь ЭТОТ кусок кода, а не весь код....
 
  • Спасибо
Реакции: Roman48

Roman48

Client
Регистрация
28.02.2016
Сообщения
2 058
Благодарностей
741
Баллы
113
там написано, копируешь ЭТОТ кусок кода, а не весь код....
Так отоработал, он нет ошибки если нет совпадения, откуда я паршу их надо точно искать, ошибка нужна, там много чего может быть лишнего, то что не нужно. Вот например smotrim.ru/video/2356856 внизу два ролика которые к сериям не относятся и на ютубе так же и на домашнем. Ошибка нужна

C#:
string text = string.Empty, result=string.Empty, regul=string.Empty;

//копируешь всегда этот кусок (под каждый твой кубик). Что надо менять:

//title - имя переменной, в которой будем искать совпадение
//вася - твоя регулярка
//series - имя переменной, куда вставляем результат, если он найден с помощью регулярки

text = project.ExecuteMacro(project.Variables["title"].Value);
regul = @"\d+\s+—\s+серия|серия\s+—\s+\d";

result = Regex.Match(text, regul).Value;
if(result.Length > 0) project.Variables["series"].Value = result;
result = string.Empty;

text = project.ExecuteMacro(project.Variables["title"].Value);
regul = @"\d+\s+серия|серия\s+\d+";

result = Regex.Match(text, regul).Value;
if(result.Length > 0) project.Variables["series"].Value = result;
result = string.Empty;
 

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