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

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Код работает со списком, а как сделать чтоб работал с файлом. Спасибо.
Я думаю, что самое простое решение в данной ситуации привязать файл к списку secondList с сохранением изменений и пользоваться кодом, что у Вас уже есть.
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 136
Благодарностей
196
Баллы
63
Все привет. Нужен небольшой сниппет на c#, который может находить нужный url в выдаче, затем записывать № позиции url в переменную. Пишите в личку, поговорим про условия работы.
Еще нужен сниппет, который может удалять из списка заданные слова и/или слово-сочетания. Нужно, чтобы слова можно было задавать в самом сниппете, без лишних файлов
 
Последнее редактирование:

Chingis

Client
Регистрация
09.09.2016
Сообщения
107
Благодарностей
20
Баллы
18
Всем привет. Подскажите с регуляркой:

^[А-Я]{1}[а-я]{1,}(-[А-Я]{1}[а-я]{1,}){0,1} [А-Я]{1}[а-я]{1,}$

В таком виде ответ принимается если текст был введен следующим образом:

Привет Медвед
если же ввести текст например так:
ПРИвет МЕДвед
то ответ не принимается, помогите привести регулярку к правильному виду
 

redman

Client
Регистрация
11.03.2016
Сообщения
554
Благодарностей
178
Баллы
43
Код:
string str = project.Variables["Stroka"].Value;
var split = str.Split(';');

project.Variables["Variable1"].Value = split[0];
project.Variables["Variable2"].Value = split[1];
project.Variables["Variable3"].Value = split[2];
project.Variables["Variable4"].Value = split[3];
project.Variables["Variable5"].Value = split[4];
Как вместо 0, 1, 2, 3 подставить переменную?
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Код:
string str = project.Variables["Stroka"].Value;
var split = str.Split(';');

project.Variables["Variable1"].Value = split[0];
project.Variables["Variable2"].Value = split[1];
project.Variables["Variable3"].Value = split[2];
project.Variables["Variable4"].Value = split[3];
project.Variables["Variable5"].Value = split[4];
Как вместо 0, 1, 2, 3 подставить переменную?
C#:
int count = int.Parse(project.Variables["Count"].Value);

project.Variables["Variable1"].Value = split[count];
 
  • Спасибо
Реакции: redman

Mihalich

Пользователь
Регистрация
16.08.2016
Сообщения
39
Благодарностей
3
Баллы
8
Доброго всем дня!
Разбираюсь с xpath и htmlagility. Протестировал нужное выражение xpath - оно точно возвращает один элемент.
Как его в C# без всяких foreach одной строчкой в переменную положить?

Вот как сейчас:
Код:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); // создание объекта
doc.LoadHtml(instance.ActiveTab.DomText); // грузим DOM напрямую сюда
string temp = "";
string result = "";
var sourceList = project.Lists["List1_Urls"]; // получаем список, с которым будем работать (в шаблоне должен уже быть пустой список List1_Urls)


var var_xpath1 = "//div[contains(@class,'buy')]/div[@class='tv-trading-toolbar__value js-value' and 2]"; // условие xpath
var Nodes_list_1 = doc.DocumentNode.SelectNodes(var_xpath1); //  получаем список элементов по условию var_xpath1

project.SendInfoToLog("нашли столько узлов: " + Nodes_list_1.Count.ToString(), true);

// разбираем что нашли
if (Nodes_list_1 != null)
{
foreach (var res in Nodes_list_1) //  начинаем цикл
    {
           result = res.InnerText; //  получаем текст каждого элемента
        project.SendWarningToLog("элемент = "+temp,true); // в лог пишем
    }       
}
return result;
 

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
Добрый день!
Подскажите код.
Если в переменной число (любое) выходит по зеленой, если буквы по красной.
Спасибо.
 

Mihalich

Пользователь
Регистрация
16.08.2016
Сообщения
39
Благодарностей
3
Баллы
8
Я не правильно выразил. Xpath настроена и проверена так, что doc.DocumentNode.SelectNodes(var_xpath1) выдаёт не список, а один результат.
Цикл foreach я взял из примеров с форума. Но ведь наверняка есть способ как без цикла для моего случая просто взять что нашёл SelectNodes и сохранить в переменную.
Прописал return (Nodes_list_1);
в логе получил: 15:47:18 Выполнение кода C# Результат: HtmlAgilityPack.HtmlNodeCollection
А нужно получить на выходе текст или кусок html который нашёл xpath.
Как это сделать?
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
Если в переменной число (любое) выходит по зеленой, если буквы по красной.
а если и буквы и цифры?

тут можно без сниппетов обойтись простым регулярным выражением "\d+" использовать без кавычек, это регулярка цифр
 

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
а если и буквы и цифры?

тут можно без сниппетов обойтись простым регулярным выражением "\d+" использовать без кавычек, это регулярка цифр
Спасибо! Уже нашел
Код:
string text = project.Variables["ID"].Value;//Берем текст из переменной для парсинга
var RegText = @"\d+";//Текст для парсинга
var match = Regex.Match(text, RegText);//Парсинг
{
    if (match.ToString() ==  "")
      {
         return null;
      }
       return match;
}
Вроде работает.
 

Mihalich

Пользователь
Регистрация
16.08.2016
Сообщения
39
Благодарностей
3
Баллы
8
Друзья, привет!
Шаблон работает несколько часов подряд. Нужно сделать несколько перерывов в его работе.
Подскажите как сделать снипет, в котором в любой день в 15:45 процесс уходил на Кубик "пауза" на 1 час?
 

kramd

Client
Регистрация
27.02.2017
Сообщения
85
Благодарностей
5
Баллы
8

Alex_a

Client
Регистрация
04.10.2016
Сообщения
16
Благодарностей
1
Баллы
3
привет, подскажите снипет. Есть список в котором 21 строка, необходимо начиная с первой строки списка до последней разложить данные строк списка в переменные. ( переменные созданы)
пример более наглядный:
список1:
aaa
bbb
ccc
....
ggg

получить на выходе
переменная1 = aaa
переменная2 = bbb
переменная3 = ccc
...
переменная21 = ggg
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
привет, подскажите снипет. Есть список в котором 21 строка, необходимо начиная с первой строки списка до последней разложить данные строк списка в переменные. ( переменные созданы)
пример более наглядный:
список1:
aaa
bbb
ccc
....
ggg

получить на выходе
переменная1 = aaa
переменная2 = bbb
переменная3 = ccc
...
переменная21 = ggg
нужно создать переменные от var0 до var20
Код:
//var list = project.Lists["list21"];

for(int i = 0; i < list.Count; i++)
{
    project.Variables["var" + i.ToString()].Value = list[i];
}
 
  • Спасибо
Реакции: fri-lancer и Alex_a

Alex_a

Client
Регистрация
04.10.2016
Сообщения
16
Благодарностей
1
Баллы
3
нужно создать переменные от var0 до var20
Код:
//var list = project.Lists["list21"];

for(int i = 0; i < list.Count; i++)
{
    project.Variables["var" + i.ToString()].Value = list[i];
}

огромное спасибо за быстрое решение, все четко как надо, спас меня от кучи кубиков. надо учить С#
 

Alex_a

Client
Регистрация
04.10.2016
Сообщения
16
Благодарностей
1
Баллы
3
Еще вопрос, это снипет замены данных используя регулярное выражение, как в этот список добавить еще несколько замен по regex? то есть в одном коде сделать их несколько что бы не плодить кубики с кодом.
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"с", "h");
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"s", "m");


Код:
string Test = project.Variables["DOM"].Value;
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"a", "b");
return regexTest;
!!Отбой нашел ответ!!.
Код:
string Test = project.Variables["Test"].Value;
string regexTest = System.Text.RegularExpressions.Regex.Replace(Test, @"квадрат", "круг");
string regexTest1 = System.Text.RegularExpressions.Regex.Replace(regexTest, @"квадрат1", "круг1");
string regexTest2 = System.Text.RegularExpressions.Regex.Replace(regexTest1, @"треугольник", "прямоугольник");
return regexTest2;
 
Последнее редактирование:

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
  • Спасибо
Реакции: Alex_a

Alex_a

Client
Регистрация
04.10.2016
Сообщения
16
Благодарностей
1
Баллы
3
Код:
string str = project.Variables["DOM"].Value;
string[] rep = new[]
{
    "a|b", "c|d", "h|j",
    "v|n", "t|y", "slovo1|slovo2"
};

foreach(string r in rep)
{
    string[] h = r.Split('|');
    str = str.Replace(h[0], h[1]);
}
return str;
спасибо за уделенное внимание, это как я понял из кода не то что надо, у меня идут полноценные regex которые заменяются данными, в исправлении выше я написал что подходит.
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
спасибо за уделенное внимание, это как я понял из кода не то что надо, у меня идут полноценные regex которые заменяются данными, в исправлении выше я написал что подходит.
Код:
string str = project.Variables["DOM"].Value;
string[] rep = new[]
{
    "\\s|b" //пробел на пусто
   
};
foreach(string r in rep)
{
    string[] h = r.Split('|');
    str = Regex.Replace(str, h[0] , h[1]);
}
return str;
 
  • Спасибо
Реакции: Alex_a

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
привет, подскажите снипет. Есть список в котором 21 строка, необходимо начиная с первой строки списка до последней разложить данные строк списка в переменные. ( переменные созданы)
пример более наглядный:
список1:
aaa
bbb
ccc
....
ggg

получить на выходе
переменная1 = aaa
переменная2 = bbb
переменная3 = ccc
...
переменная21 = ggg
Код:
var list = project.Lists["secondList"];
Random rnd = new Random();
if (list.Count <= 0)
{
    project.SendWarningToLog("", "Список secondList пуст", true);
    return null;
}
if (list.Count < 21)
{
    for (int i = 0; i < list.Count; i++)
    {
        int index = Global.Classes.rnd.Next(0, list.Count);
        project.Variables["ID" + i.ToString()].Value = list[index];
        list.RemoveAt(index);
    }
    return 1;
}
else
{
    for (int j = 0; j < 21; j++)
    {
        int index2 = Global.Classes.rnd.Next(0, list.Count);
        project.Variables["ID" + j.ToString()].Value = list[index2];
        list.RemoveAt(index2);
    }
}
 
  • Спасибо
Реакции: Alex_a

linkod

Пользователь
Регистрация
11.10.2018
Сообщения
118
Благодарностей
1
Баллы
16
товарищи, нужен сниппет эмуляции хаотичного выполнения скрипта для управляющего шаба. Чтобы было сложнее отличить робота.
мне приходит на ум создание рандомных интервалов запуска в зависимости от времени суток.
1)Ночью человек спит и не выполняет работу
2)днем человек более-менее свободен и постоянно, но неравномерно кликает
3) бывают случаи нетипичного отсутствия или ноборот повышенной активности.

Как это записать в код? Плюс для меня не решен вопрос записи в код вероятностей тех или иных событий.
 

Alex_a

Client
Регистрация
04.10.2016
Сообщения
16
Благодарностей
1
Баллы
3
привет, выручайте есть сниппет который записывает данные в таблицу, теперь возникла необходимость брать эти данные из таблицы?
желательно в таком же удобном варианте так как столбцов порядка 35.

Код:
string t0 = project.Variables["t0"].Value;
string aaa1 = project.Variables["aaa1"].Value;
string bbb2, = project.Variables["bbb2"].Value;
string t3 = project.Variables["t3"].Value;
string t4 = project.Variables["t4"].Value;
string t5 = project.Variables["t5"].Value;
string t6 = project.Variables["t6"].Value;
string t7 = project.Variables["t7"].Value;
string zzz8 = project.Variables["zzz8"].Value;
string t9 = project.Variables["t9"].Value;
string t10 = project.Variables["t10"].Value;

var table1 = project.Tables["result"];

lock(SyncObjects.TableSyncer){
table1.AddRow(new []{t0, aaa1, bbb2, t3, t4, t5, t6, t7, zzz8, t9, t10});
    }
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63
столбцов порядка 35

https://help.zennolab.com/en/v5/zennoposter/5.18.0.0/webframe.html#topic1045.html
https://help.zennolab.com/en/v5/zennoposter/5.18.0.0/webframe.html#topic1032.html

Код:
IZennoTable table = project.Tables["MyTable"];

for(int i = 0; i < table.RowCount; i++)
{
    string cell1 = table.GetCell("A", i);
    string cell2 = table.GetCell("B", i);
    string cell3 = table.GetCell("C", i);
    string cell4 = table.GetCell("D", i);
    string cell5 = table.GetCell("E", i);
    //............
}
 
Последнее редактирование:
  • Спасибо
Реакции: Alex_a

Alex_a

Client
Регистрация
04.10.2016
Сообщения
16
Благодарностей
1
Баллы
3
https://help.zennolab.com/en/v5/zennoposter/5.18.0.0/webframe.html#topic1045.html
https://help.zennolab.com/en/v5/zennoposter/5.18.0.0/webframe.html#topic1032.html

Код:
IZennoTable table = project.Tables["MyTable"];

for(int i = 0; i < table.RowCount; i++)
{
    string cell1 = table.GetCell("A", i);
    string cell2 = table.GetCell("B", i);
    string cell3 = table.GetCell("C", i);
    string cell4 = table.GetCell("D", i);
    string cell5 = table.GetCell("E", i);
    //............
}
Спасибо

вот что сам придумал, мне еще и локать таблицу надо.
Код:
lock(SyncObjects.TableSyncer){

    // берем первую строку с удалением и раскидываем значения по переменным
    var row = project.Tables["result"].GetRow(0).ToList();
    project.Tables["result"].DeleteRow(0);

project.Variables["t0"].Value =row[6];
project.Variables["t1"].Value =row[7];
project.Variables["t2"].Value =row[8];
project.Variables["t3"].Value =row[9];
project.Variables["t4"].Value =row[10];
project.Variables["t5"].Value =row[11];
project.Variables["t6"].Value =row[12];
}
 

SVRyzhov

Client
Регистрация
17.05.2017
Сообщения
47
Благодарностей
5
Баллы
8
товарищи, нужен сниппет эмуляции хаотичного выполнения скрипта для управляющего шаба. Чтобы было сложнее отличить робота.
мне приходит на ум создание рандомных интервалов запуска в зависимости от времени суток.
1)Ночью человек спит и не выполняет работу
2)днем человек более-менее свободен и постоянно, но неравномерно кликает
3) бывают случаи нетипичного отсутствия или ноборот повышенной активности.

Как это записать в код? Плюс для меня не решен вопрос записи в код вероятностей тех или иных событий.
Сниппет устанавливает количество запусков и время в планировщике.
Код:
var time = DateTime.Now; // текущее время
if (9 > time.Hour){
    time = DateTime.Now + TimeSpan.FromHours(9 - DateTime.Now.Hour);
} else if (9 <= time.Hour && time.Hour < 12){
    // окончание первой смены 9-11
    time = DateTime.Now + TimeSpan.FromHours(13 - DateTime.Now.Hour);
} else if (12 <= time.Hour && time.Hour < 15){
    // окончание второй смены 12-14
    time = DateTime.Now + TimeSpan.FromHours(16 - DateTime.Now.Hour);
} else if (15 <= time.Hour){
    // окончание третьей смены 15-18
    time = DateTime.Now + TimeSpan.FromHours(24 - DateTime.Now.Hour + 9);
}

var str = string.Format("{0}/{1}/{2} {3}:{4}:{5}", time.Month, time.Day, time.Year, time.Hour, time.Minute, time.Second);
var howMuch = 1; // сколько повторять
string name = project.Name.Replace(".xmlz", ""); // узнаем название проекта

var settings =
string.Format(
@"<StartDate>{0}</StartDate>
<ShedulerOnDate>{0}</ShedulerOnDate>
<EndDate>{0}</EndDate>
<RepetitionCount>{1}</RepetitionCount>
<ScheduleType>EveryMinutes</ScheduleType>
<RepeatType>FinishAfter</RepeatType>
<ActivateTime>01/01/0001 00:00:00</ActivateTime>
<ActivateWorkTime>01/01/0001 00:00:00</ActivateWorkTime>
<IsActive>True</IsActive>
<NumberOfTries>1</NumberOfTries>
<Minutes>1</Minutes>
<Days>1</Days>
<LastScheduleDate>{0}</LastScheduleDate>
<NextScheduleDate>{0}</NextScheduleDate>
<IsClearSucces>False</IsClearSucces>"
,str, howMuch);

ZennoPoster.SetSchedulerSettings(name, settings);

//По мотивам http://zennolab.com/discussion/threads/proekt-planiruet-sam-sebja.24040/#post-164963
В данном случае 3 раза в сутки, с 9 до 18 часов, через определенное количество часов после выполнения сниппета.
С регистром имени файла проекта может быть заморочка, вроде должно быть первая большая, а остальные маленькие, про кириллические названия проектов и пробелы сказать ничего не могу, не тестистил.
 
  • Спасибо
Реакции: linkod

Vinovnik

Client
Регистрация
10.08.2016
Сообщения
354
Благодарностей
106
Баллы
43
Как сделать, чтобы инстанс выводился поверх всех окон? Вызывается таким кодом instance.WaitForUserAction(300);
 

linkod

Пользователь
Регистрация
11.10.2018
Сообщения
118
Благодарностей
1
Баллы
16
Товарищи, нужен пример кода для работы с подпроектом в многопотоке для отправки/принятия результата выполнения подпроекта в основной проект и понимания с какими входными данными подпроект работал.
Методом кирки и лопаты я нашел метод System.Guid, но вот как его реализовать еще не понял. Есть пример кода у кого-нибудь? буду благодарен.
 

linkod

Пользователь
Регистрация
11.10.2018
Сообщения
118
Благодарностей
1
Баллы
16
кстати, еще непонятен момент почему project.TaskId выдает нули. ))
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Товарищи, нужен пример кода для работы с подпроектом в многопотоке для отправки/принятия результата выполнения подпроекта в основной проект и понимания с какими входными данными подпроект работал.
Методом кирки и лопаты я нашел метод System.Guid, но вот как его реализовать еще не понял. Есть пример кода у кого-нибудь? буду благодарен.
а подпроект вроде не работает в многопотоке, может уже работает просто я отстал ))
 

linkod

Пользователь
Регистрация
11.10.2018
Сообщения
118
Благодарностей
1
Баллы
16
Есть проблема запустить цикл с и передать переменные? были темы по другим вопросам в многопотоке в подпроектах, но заявлений о "неработе" не было. Меня данная тема уже неделю мучает. Пора бы кончать:D
 

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