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

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 126
Баллы
113
А как сделать так чтобы искал сразу в нескольких (например 3-х) списках.
C#:
IZennoList sourceList1 = project.Lists["SourceList1"]; // список, в котором искать 1
IZennoList sourceList2 = project.Lists["SourceList2"]; // список, в котором искать 2
IZennoList sourceList3 = project.Lists["SourceList3"]; // список, в котором искать 3
string textContains = project.Variables["TextContains"].Value; // текст, который искать

List<string> tmpList = new List<string>(); // создаем темповый список
tmpList.AddRange(sourceList1); // добавляем в него данные из списка 1
tmpList.AddRange(sourceList2); // из списка 2
tmpList.AddRange(sourceList3); // из списка 3
tmpList = tmpList.Distinct().ToList(); // удаляем дубли

foreach (string str in tmpList) { // проходим в цикле по каждой строке темпового списка
   if (str.Contains(textContains)) // проверяем содержание текста в строке
      throw new Exception(); // если есть совпадение, выходим по красной
}
// если совпадений не найдено, выходим по зеленой
 

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
Уважаемые знатоки, несколько вопросов:

1)Есть сниппет
Код:
var post_num = project.Lists["post_num"];
return post_num.Max();
По идее должен вернуть наибольшее значение из списка. Но возвращает какое-то другое. В чем дело? Думаю изза того что список по умолчанию ложится в строковый массив, но не знаю как быть

2)Есть еще один сниппет
Код:
int[] arr = Regex.Matches(project.Variables["get"].Value, @"(?<=/123_).*?(?=\?add)");
return arr.Max();
Он должен делать примерно тоже самое что и прошлый, за исключением того что я хотел выпарсить все эти значения сразу в сишарпе. Но в итоге все или не работает, если задавать массив числовой (int или int[]) либо если задать его var то получается получить только arr но не arr.Max(). Что делать?
 
Последнее редактирование:

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 126
Баллы
113
  • Спасибо
Реакции: samsonnn и Porosenok

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48
Спасибо. А список положить в числовой массив как-то можно?
 

Dimionix

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

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 280
Благодарностей
96
Баллы
48

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 126
Баллы
113
Не очень понял.
Попробовал типа так
List<int> post_num = project.Lists["post_num"];
return post_num.Max();

но не работает
C#:
IZennoList post_num = project.Lists["post_num"];
List<int> listNums = post_num.Select(int.Parse).ToList();
return listNums.Max();
или в одну строку
C#:
return project.Lists["post_num"].Select(int.Parse).Max();
 
  • Спасибо
Реакции: samsonnn и Porosenok

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Добрый день, нужно чтобы данный код после логина сохранял данные для последующего использования в шаблоне, а то получается что при каждом выполнении кода, данные полностью вводятся заново.... а это очень не удобно..
В общем нужно сохранить Профиль, и куки, в Отдельный файл, при выполнении следующего кода взять Профиль и куки... для быстрого логина на сайт.
C#:
[LIST=1]
[*]string mail = "[email protected]";
[*]string password = "password123445";
[*]string data = "source_url=/&data={\"options\":{\"username_or_email\":\""+mail+"\",\"password\":\""+password+"\"},\"context\":{}}";
[*]string url = "https://www.pinterest.com/resource/UserSessionResource/create/";
[*]string X_CSRFToken = "K4C0QUu35Eoq1xjajbMluw7hOKibpQSW";
[*]string[] header = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] string[] { "Accept: application/json, text/javascript, */*; q=0.01",
[*]           "Accept-Language: en-US,en;q=0.5",
[*]           "Cache-Control: no-cache",
[*]           "DNT: 1",
[*]           "Host: www.pinterest.com",
[*]           "Origin: https://www.pinterest.com",
[*]           "Referer: https://www.pinterest.com/",
[*]           "X-APP-VERSION: 18733c1",
[*]           string.Format(@"X-CSRFToken: {0}", X_CSRFToken),
[*]           "X-NEW-APP: 1",
[*]           "X-Pinterest-AppState: active",
[*]           "X-Requested-With: XMLHttpRequest"
[*]};
[*]string auth = ZennoPoster.HttpPost(url, data, @"application/x-www-form-urlencoded", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, "_auth=0; csrftoken=K4C0QUu35Eoq1xjajbMluw7hOKibpQSW", project.Profile.UserAgent, false, 0, header);
[*]

[*]Regex re_cookie = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] Regex(@"(?<=Set-Cookie:).*?(?=;)");
[*]MatchCollection auth_cookie = re_cookie.Matches(auth);
[*]List<string> list_cookie = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] List<string>();
[*]for (int i = 0; i < auth_cookie.Count; i++) {
[*]   if(auth_cookie[i].Value.Contains("csrftoken") )X_CSRFToken = auth_cookie[i].Value.ToString().Split('=')[1].Trim();
[*]    list_cookie.Add(auth_cookie[i].Value.Trim());
[*]}
[*]string cookie = string.Join("; ", list_cookie);
[*]

[*]url = "https://www.pinterest.com/";
[*]header = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] string[] { "Accept: application/json, text/javascript, */*; q=0.01",
[*]           "Accept-Language: en-US,en;q=0.5",
[*]           "Cache-Control: no-cache",
[*]           "DNT: 1",
[*]           "Host: www.pinterest.com",
[*]           "Origin: https://www.pinterest.com",
[*]           "Referer: https://www.pinterest.com/",
[*]           "X-APP-VERSION: 18733c1",
[*]           string.Format(@"X-CSRFToken: {0}", X_CSRFToken),
[*]           "X-NEW-APP: 1",
[*]           "X-Pinterest-AppState: active",
[*]           "X-Requested-With: XMLHttpRequest"
[*]};
[*]

[*]return ZennoPoster.HttpGet( url, "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, cookie, project.Profile.UserAgent, true, 0, header);
[/LIST]
 

leonidm

Client
Регистрация
28.04.2017
Сообщения
19
Благодарностей
2
Баллы
3
Добрый день, нужно чтобы данный код после логина сохранял данные для последующего использования в шаблоне, а то получается что при каждом выполнении кода, данные полностью вводятся заново.... а это очень не удобно..
В общем нужно сохранить Профиль, и куки, в Отдельный файл, при выполнении следующего кода взять Профиль и куки... для быстрого логина на сайт.
C#:
string mail = "[email protected]";
string password = "password123445";
string data = "source_url=/&data={\"options\":{\"username_or_email\":\""+mail+"\",\"password\":\""+password+"\"},\"context\":{}}";
string url = "https://www.pinterest.com/resource/UserSessionResource/create/";
string X_CSRFToken = "K4C0QUu35Eoq1xjajbMluw7hOKibpQSW";
string[] header = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] string[] { "Accept: application/json, text/javascript, */*; q=0.01",
           "Accept-Language: en-US,en;q=0.5",
           "Cache-Control: no-cache",
           "DNT: 1",
           "Host: www.pinterest.com",
           "Origin: https://www.pinterest.com",
           "Referer: https://www.pinterest.com/",
           "X-APP-VERSION: 18733c1",
           string.Format(@"X-CSRFToken: {0}", X_CSRFToken),
           "X-NEW-APP: 1",
           "X-Pinterest-AppState: active",
           "X-Requested-With: XMLHttpRequest"
};
string auth = ZennoPoster.HttpPost(url, data, @"application/x-www-form-urlencoded", "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, "_auth=0; csrftoken=K4C0QUu35Eoq1xjajbMluw7hOKibpQSW", project.Profile.UserAgent, false, 0, header);


Regex re_cookie = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] Regex(@"(?<=Set-Cookie:).*?(?=;)");
MatchCollection auth_cookie = re_cookie.Matches(auth);
List<string> list_cookie = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] List<string>();
for (int i = 0; i < auth_cookie.Count; i++) {
   if(auth_cookie[i].Value.Contains("csrftoken") )X_CSRFToken = auth_cookie[i].Value.ToString().Split('=')[1].Trim();
    list_cookie.Add(auth_cookie[i].Value.Trim());
}
string cookie = string.Join("; ", list_cookie);


url = "https://www.pinterest.com/";
header = [URL='http://www.google.com/search?q=new+msdn.microsoft.com']new[/URL] string[] { "Accept: application/json, text/javascript, */*; q=0.01",
           "Accept-Language: en-US,en;q=0.5",
           "Cache-Control: no-cache",
           "DNT: 1",
           "Host: www.pinterest.com",
           "Origin: https://www.pinterest.com",
           "Referer: https://www.pinterest.com/",
           "X-APP-VERSION: 18733c1",
           string.Format(@"X-CSRFToken: {0}", X_CSRFToken),
           "X-NEW-APP: 1",
           "X-Pinterest-AppState: active",
           "X-Requested-With: XMLHttpRequest"
};


return ZennoPoster.HttpGet( url, "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, cookie, project.Profile.UserAgent, true, 0, header);
 

andrey9269

Client
Регистрация
09.06.2017
Сообщения
16
Благодарностей
2
Баллы
3
нужно авторизаваться на саите рамблера
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 685
Благодарностей
4 642
Баллы
113

КарлМаркс

Активный пользователь
Регистрация
11.07.2017
Сообщения
200
Благодарностей
64
Баллы
28

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с КарлМаркс какие-либо сделки.

Как быстрее всего искать по файлам регуляркой?
Есть более 1кк файлов в разных папках. Есть полные пути в списке.
Как быстро пройтись по всем файлам?
 

vaulroon

Client
Регистрация
20.10.2017
Сообщения
274
Благодарностей
11
Баллы
18
При удалении письма в mail.ru ящике, оно переносится в папку "корзина". Можно ли написать сниппет, который окончательно удалял письмо из данной папки?
 

redman

Client
Регистрация
11.03.2016
Сообщения
554
Благодарностей
178
Баллы
43
Люди, подскажите снипет как добавлять / отнимать проценты. Например 100 + 25% = ?
 

redman

Client
Регистрация
11.03.2016
Сообщения
554
Благодарностей
178
Баллы
43
Последнее редактирование:

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 802
Благодарностей
1 474
Баллы
113
Нашел.
http://zennolab.com/discussion/threads/kak-vycheslit-procent-ot-chisla.18382/

Но что то не получается. Нужно добавить 77 + 25% например
Все тут правильно. Смотрите для того чтоб нам узнать % от какого то числа, например: 25% от числа 77 будет 19,25 не важно что вы с этим числом будете делать, вы можете -25% или +25% или *25% или /25% ваш % всегда будет одинаковый то есть 19,25


Сами попробуйте на калькуляторе:
77-25%
77+25%
77*25%
77/25%

Видно что для всех математических действий % всегда будет одинаковый. Хорошо мы узнали % от числа 77 теперь с этим % можно делать что вам угодно, в вашем случае 77 + 19,25 = 96,25
В теме выше по ссылке Лекс все правильно написал, там код чтоб узнать % из любого числа, а потом с этим % вы уже самостоятельно делаете разные математические действия.

C#:
double number = double.Parse(project.Variables["number"].Value); // наше число
double persent = double.Parse(project.Variables["persent"].Value); // наш % который хотим узнать
double result = number/100*persent; // наш % от числа
return number + result; // любое математическое действие числа с %
в результате:

 
Последнее редактирование:
  • Спасибо
Реакции: redman

lsvl

Новичок
Регистрация
05.11.2017
Сообщения
1
Благодарностей
0
Баллы
1
Всем привет. Пытаюсь разобраться в курсе по одноклассникам от Rostonix. Это код по добавлению в друзья в ОК.
не могу понять что должно содержаться в строке try после surcelist. Буду благодарен за помощь)

Код:
bool bad = false
HtmlElementCoolection heCol = instance.ActiveTab.FindElementByAttribute("div","class","show-on-hover","regexp");
for (int j=0;j<heCol.Count;j++)
{
    bad = false
    var he = heCol.GetByNumber(j).FindChildByattribute("a","class",ucard-b_img_a","text",0);
    string href = he.GetAttribute("href");
    ver sourceList = project.Lists["Blacklist"];
    lock(SyncObjects.ListSyncer)
    {
        for(inc i=0; i < sourceList.Count; i++)
        {
            var str = sourceList[i];
            if (strContains(href)) { bad = true; break;}
        }
    }
    if (!bad)
    {
        try {heCol.GetByNumber(j).FindChildByAttribute("span","innertext", "Дружить","text', 0).RiseEvent("click","Full"); sourcelist ............
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Как взять N случайных строк из очень большого (>5 млн. строк) текстового файла?
 

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 126
Баллы
113
Как взять N случайных строк из очень большого (>5 млн. строк) текстового файла?
C#:
string filePath = project.Variables["filePath"].Value; // путь к файлу
int count = int.Parse(project.Variables["count"].Value); // количество строк
string[] lines = File.ReadAllLines(filePath);
return string.Join("\r\n", lines.Shuffle().Take(count));
UPD. Выполнение в несколько раз быстрее:
C#:
string filePath = project.Variables["filePath"].Value; // путь к файлу
int count = int.Parse(project.Variables["count"].Value); // количество строк
string[] lines = File.ReadAllLines(filePath);
Random rnd = new Random();
return string.Join("\r\n", lines.AsParallel().Select(x => rnd.Next()).Take(count));
 
Последнее редактирование:

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
  • string[] lines = File.ReadAllLines(filePath);
Не много ли 5 млн строк??

Как взять N случайных строк из очень большого (>5 млн. строк) текстового файла?
Лучше брать "построчно". (только желательно знать конечный индекс плюс-минус миллион)

Код:
string filePath = project.Variables["filePath"].Value; // путь к файлу
int count = int.Parse(project.Variables["count"].Value); // количество строк
List <string> result =new List<string>();

for (int i=0;i<count;i++)
{
    int rnd = new Random.Next(5000000);
    result.Add(File.ReadLines(filePath).ElementAt(rnd));
}
return string.Join("\r\n", result);
 

Dimionix

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

Lagavu

Client
Регистрация
21.12.2016
Сообщения
74
Благодарностей
1
Баллы
8
Ребята хелп, подскажите пожалуйста сниппет который будет считать количество строк в переменной что то не нашел в поиске(
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 126
Баллы
113
Ребята хелп, подскажите пожалуйста сниппет который будет считать количество строк в переменной что то не нашел в поиске(
C#:
string str = project.Variables["text"].Value;
return str.Split(new[] {"\r\n"}, StringSplitOptions.None).Count();
 
  • Спасибо
Реакции: Lagavu

Lagavu

Client
Регистрация
21.12.2016
Сообщения
74
Благодарностей
1
Баллы
8
помогите пожалуйста еще с решением проблемы, всю голову сломал не понимаю как мне взять из списка по регулярному выражению несколько строк? @Dimionix

http://joxi.ru/12Mg7Xaf4blwyr
 

Lagavu

Client
Регистрация
21.12.2016
Сообщения
74
Благодарностей
1
Баллы
8
важно именно по регулярному выражению брать, т.к кол-во строк меняется
 

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
важно именно по регулярному выражению брать, т.к кол-во строк меняется
Что именно тебе надо из этого фрагмента кода? Количество строк или кол-во вхождений некоторой регулярки?
 
  • Спасибо
Реакции: Lagavu

Lagavu

Client
Регистрация
21.12.2016
Сообщения
74
Благодарностей
1
Баллы
8
Последнее редактирование:

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
Код:
string input = "kod";
string pattern = @"(?<=b2b\.invest\.kz""\>).+?(\</div\>)";
project.Lists["list_in_project"].AddRange(Regex.Matches(input,pattern).Cast<Match>().Select(_m=>_m.Value).ToList());
этот код вернет в список list_in_project всё от b2b\.invest\.kz" до /div
потом можешь брать из списка и класть в переменные.

Насчет регулярки не обещаю работоспособность (как-то не очень в кайф перепечатывать код с картинки).
 
  • Спасибо
Реакции: Lagavu

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