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

Alex.A

Client
Joined
Nov 14, 2020
Messages
484
Reaction score
246
Points
43
Добрый день!
Есть список с ссылками вида
...https://news.google.com/articles/CBMie2h0dHBzOi8vbmV3cy5saWdhLm5ldC93b3JsZC9uZXdzL211amNoaW5hLXMtb3J1amllbS1weXRhbHN5YS1wcm9uaWtudXQtdi12aW5kem9yc2tpeS16YW1vay10YW0ta29yb2xldmEtcHJhemRudWV0LXJvamRlc3R2b9IBf2h0dHBzOi8vbmV3cy5saWdhLm5ldC9hbXAvd29ybGQvbmV3cy9tdWpjaGluYS1zLW9ydWppZW0tcHl0YWxzeWEtcHJvbmlrbnV0LXYtdmluZHpvcnNraXktemFtb2stdGFtLWtvcm9sZXZhLXByYXpkbnVldC1yb2pkZXN0dm8?hl=ru&gl=UA&ceid=UA%3Aru...
(точки перед и в конце ссылки отсутствуют - я поставил, так как не дает тут разместить ссылку)

нужно взять произвольную ссылку из списка, записать ее в переменную и сделать по ней переход в новое окно.
Помогите это реализовать...
 
Last edited:

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
Как взять случайную строку из списка , которая содержит одно из слов

Например в списке слова:
Zennoposter помощник
Автоматизация рутины
Capmontser решит рекаптчи
Proxy для анонимации


Нужно взять из этого списка рандомно строку содержащее слово Zennoposter или слово Proxy, как это реализовать?
 

SergSh

Client
Joined
May 10, 2017
Messages
540
Reaction score
395
Points
63
Как взять случайную строку из списка , которая содержит одно из слов

Например в списке слова:
Zennoposter помощник
Автоматизация рутины
Capmontser решит рекаптчи
Proxy для анонимации


Нужно взять из этого списка рандомно строку содержащее слово Zennoposter или слово Proxy, как это реализовать?
C#:
var list = project.Lists["list"];
string word = "zennoposter";

var res = list.Where(x => x.ToLower().Contains(word));
if(res.Count() > 0)
{
    return res.Shuffle().First();
}
 

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
C#:
var list = project.Lists["list"];
[B]string word = "zennoposter";[/B]

var res = list.Where(x => x.ToLower().Contains(word));
if(res.Count() > 0)
{
    return res.Shuffle().First();
}
спасибо, а как совместить, чтобы ИЛИ, в примере только zennoposter, а мне нужно строку одну из двух со словом, например Zennoposter|proxy
 

djaga

Administrator
Staff member
Joined
Apr 26, 2020
Messages
562
Reaction score
1,144
Points
93
Как взять случайную строку из списка , которая содержит одно из слов

Например в списке слова:
Zennoposter помощник
Автоматизация рутины
Capmontser решит рекаптчи
Proxy для анонимации


Нужно взять из этого списка рандомно строку содержащее слово Zennoposter или слово Proxy, как это реализовать?
спасибо, а как совместить, чтобы ИЛИ, в примере только zennoposter, а мне нужно строку одну из двух со словом, например Zennoposter|proxy
Выбрать рандомную строку:
var listPhrase = project.Lists["фразы"]; // по аналогии можно сделать ниже

var listConditions = new List<string>() // условия поиска
{
    "Zennoposter",
    "Proxy"
};

var phrasesFoundList = new List<string>(); // результирующая коллекция

foreach (var condition in listConditions) // перебор условий
{
    foreach (string phrase in listPhrase) // перебор фраз
        if (phrase.Contains(condition))
            phrasesFoundList.Add(phrase);
}

foreach (var s in phrasesFoundList) project.Lists["Result"].Add(s); // добавление в список зенки

var rand = new Random();
var i = rand.Next(0, project.Lists["Result"].Count);

return project.Lists["Result"][i]; // получить в переменную рандомную строку
На всякий, прикрепил проект.)
 

Attachments

Last edited:

SergSh

Client
Joined
May 10, 2017
Messages
540
Reaction score
395
Points
63
спасибо, а как совместить, чтобы ИЛИ, в примере только zennoposter, а мне нужно строку одну из двух со словом, например Zennoposter|proxy
C#:
var list = project.Lists["list"];

//через запятую в двойных кавычках сколько угодно слов можно дописать
//все слова в нижнем регистре должны быть
List<string> words = new List<string>()
{
    "zennoposter", "proxy"
};

var res = list.Where(l => words.Any(w => l.ToLower().Contains(w)));
if(res.Count() > 0)
{
    return res.Shuffle().First();
}
 
  • Thank you
Reactions: udder

balytnikov

Client
Joined
Feb 17, 2015
Messages
27
Reaction score
8
Points
3
Как взять случайную строку из списка , которая содержит одно из слов

Например в списке слова:
Zennoposter помощник
Автоматизация рутины
Capmontser решит рекаптчи
Proxy для анонимации


Нужно взять из этого списка рандомно строку содержащее слово Zennoposter или слово Proxy, как это реализовать?
Я бы сначала через Обработка текста → Spintax (https://zennolab.atlassian.net/wiki/spaces/RU/pages/488865793#Spintax) взял рандомное слово, а потом брал строку, содержащее это слово. 2 кубика, без с#.
 
  • Thank you
Reactions: udder

socsecret.ru

Client
Joined
Sep 30, 2017
Messages
352
Reaction score
213
Points
43
Всем привет. Подскажите пожалуйста Get-запрос, которым можно узнать сообщения в канале телеграма. Очень надо, готов заплатить. Пример: я отправляю в свой канал какое-либо сообщение, бот периодически отправляет этот Get-запрос и получает либо моё новое сообщение, либо хотя бы скопом последние Х сообщений в канале...
 

Markoonij

Client
Joined
Oct 13, 2020
Messages
71
Reaction score
3
Points
8
Привет. Ребята, подскажите как можно реализовать снипетом такую логику: в переменной X есть десятичная дробь (2,4), нужно от нее отнять 1 (2,4-1=1,4) и получившееся число перевести в простую дробь (1,4 -> 7/5). И уже в таком виде засунуть в переменную Y.
 

djaga

Administrator
Staff member
Joined
Apr 26, 2020
Messages
562
Reaction score
1,144
Points
93
Привет. Ребята, подскажите как можно реализовать снипетом такую логику: в переменной X есть десятичная дробь (2,4), нужно от нее отнять 1 (2,4-1=1,4) и получившееся число перевести в простую дробь (1,4 -> 7/5). И уже в таком виде засунуть в переменную Y.
Тупо копировать оттуда и вставлять сюда не хотел, так что вот:
Пример раз: code-enjoy.ru/perevod_desatichnih_drobey_v_obichnie_si_sharp/
Пример два: ru.stackoverflow.com/questions/718530/
 
  • Thank you
Reactions: Markoonij

Markoonij

Client
Joined
Oct 13, 2020
Messages
71
Reaction score
3
Points
8
Тупо копировать оттуда и вставлять сюда не хотел, так что вот:
Пример раз: code-enjoy.ru/perevod_desatichnih_drobey_v_obichnie_si_sharp/
Пример два: ru.stackoverflow.com/questions/718530/
Спасибо, конечно за подсказку. Но я в C# совсем ничего не понимаю. И если просто скопипатить этот код, то ничего не происходит. Не поможешь разобраться?
 
  • Thank you
Reactions: djaga

samsonnn

Client
Joined
Jun 2, 2015
Messages
1,898
Reaction score
1,640
Points
113
Привет. Ребята, подскажите как можно реализовать снипетом такую логику: в переменной X есть десятичная дробь (2,4), нужно от нее отнять 1 (2,4-1=1,4) и получившееся число перевести в простую дробь (1,4 -> 7/5). И уже в таком виде засунуть в переменную Y.
В общий крд добавляем:



C#:
using System.Threading.Tasks;

namespace ZennoLab.OwnCode
{
    public class CommonCode
    {
        public static object SyncObject = new object();

        static public string Drob(double numeric)
        {
            string result = "";
            bool otr = false;

            if(numeric < 0)
            {
                otr = true;
                numeric = numeric * (-1);
            }

            int ind = numeric.ToString().IndexOf(',');
      
             if (ind == -1)
                 return numeric.ToString();

            ulong cel  = ulong.Parse(numeric.ToString().Substring(0, ind));
            ulong chisl = ulong.Parse(numeric.ToString().Remove(0, ind + 1));
            ulong znam = 1;

             for (int i = 0; i < chisl.ToString().Length; i++)
                 znam *= 10;

             for (ulong i = 2; i < znam; i++)
             {
                 if (chisl % i == 0 && znam % i == 0)
                 {
                     chisl /= i;
                     znam /= i;
                     i = 1;
                 }
             }

            result =  (cel*znam + chisl).ToString() + "/" + znam.ToString();

            if(otr)
            {
                result = "-" + result;
            }

            return result;
        }
    }
}
создаем 2 переменные: number и result

В кубике C# вызываем:




C#:
string resDrobe =  CommonCode.Drob(double.Parse(project.Variables["number"].Value.Replace(".",",")));
project.Variables["result"].Value = resDrobe;
результат:



шаблон с примером прикрепил)

Ваш случай с минус 1:

Создаем еще одну переменную: minus_number



C#:
string resDrobe =  CommonCode.Drob(double.Parse(project.Variables["number"].Value.Replace(".",","))-double.Parse(project.Variables["minus_number"].Value));
project.Variables["result"].Value = (resDrobe);
 

Attachments

Last edited:

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
В общий код
C#:
        public static string drob(string s){
            double d = double.Parse(s.Replace(".",","));
            bool n = d > 0 ? true : false;
            int f = s.Length-(n ? 1 : 2) - (Math.Truncate(d)).ToString().Length;
            int[] drob = new[]{int.Parse(string.Join("", s.Where(c => char.IsDigit(c)))), (int)Math.Pow(10, f)};
            int z = del(drob[0], drob[1]);
            return (n ? "" : "-") + string.Join("/", drob.Select(x=>x/z));
        }
        public static int del(int a, int b){
            while(b!=0)
                b=a%(a=b);
            return a;
        }
Вызов
C#:
return CommonCode.drob(project.Variables["z"].Value);
 

Quant

Client
Joined
Dec 13, 2016
Messages
24
Reaction score
2
Points
3
Как из директории взять файл с самой "старой" датой его изменения, при условии что директория указывается в переменной в настройках проекта?
Как другим кубиком можно выполнить проверку что с даты последнего изменения прошло Х дней?
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
21,023
Reaction score
9,356
Points
113
Как из директории взять файл с самой "старой" датой его изменения, при условии что директория указывается в переменной в настройках проекта?
Как другим кубиком можно выполнить проверку что с даты последнего изменения прошло Х дней?
Здесь было обсуждение с методом решения:
 

Quant

Client
Joined
Dec 13, 2016
Messages
24
Reaction score
2
Points
3
Видел, но там обсуждается Project.Directory + вариации внутренних папок.
К сожалению знаний в C# нет, поэтому переделать код, чтобы вместо
"EnumerateFiles(project.Directory + @"\Профили\Нужные профили\")"

Было: "EnumerateFiles({-Variable.profiles_dir-})" (грубо), не смог.

Плюс хотелось бы Отдельно кубик с проверкой "отлежки".
Или лучше в ту тему задать?
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
21,023
Reaction score
9,356
Points
113
Видел, но там обсуждается Project.Directory + вариации внутренних папок.
К сожалению знаний в C# нет, поэтому переделать код, чтобы вместо
"EnumerateFiles(project.Directory + @"\Профили\Нужные профили\")"

Было: "EnumerateFiles({-Variable.profiles_dir-})" (грубо), не смог.

Плюс хотелось бы Отдельно кубик с проверкой "отлежки".
Или лучше в ту тему задать?
Да, лучше туда написать - там релевантнее тема.
 

socsecret.ru

Client
Joined
Sep 30, 2017
Messages
352
Reaction score
213
Points
43
Видел, но там обсуждается Project.Directory + вариации внутренних папок.
К сожалению знаний в C# нет, поэтому переделать код, чтобы вместо
"EnumerateFiles(project.Directory + @"\Профили\Нужные профили\")"

Было: "EnumerateFiles({-Variable.profiles_dir-})" (грубо), не смог.

Плюс хотелось бы Отдельно кубик с проверкой "отлежки".
Или лучше в ту тему задать?
Не знаю, правильно ли я понял, но возможно это поможет:

// Меняем дату создания файла
System.IO.File.SetCreationTime(project.Variables["tmp"].Value, DateTime.ParseExact(project.Variables["date"].Value, "yyyy-MM-dd HH:mm:ss", new System.Globalization.CultureInfo("ru-RU")));

// Меняем дату последней операции записи в файл
System.IO.File.SetLastWriteTime(project.Variables["tmp"].Value, DateTime.ParseExact(project.Variables["date"].Value, "yyyy-MM-dd HH:mm:ss", new System.Globalization.CultureInfo("ru-RU")));

// Читаем дату создания файла
return new System.IO.FileInfo(@project.Variables["tmp"].Value).CreationTime.ToString(@"MM\/dd\/yyyy hh:mm:ss");

// Читаем дату последней операции записи в файл
return new System.IO.FileInfo(@project.Variables["tmp"].Value).LastWriteTime.ToString(@"MM\/dd\/yyyy hh:mm:ss");
 

Markoonij

Client
Joined
Oct 13, 2020
Messages
71
Reaction score
3
Points
8
Помогите разобраться, почему не происходит клик?
C#:
var z = project.Variables["eventId"].Value;
foreach(var t in instance.ActiveTab.FindElementsByXPath(@"//li[@gameid='z']"))
    t.Click();
В переменной eventId лежит значение 462922

Если не использовать переменную проекта, то клик проходит нормально!
C#:
foreach(var t in instance.ActiveTab.FindElementsByXPath(@"//li[@gameid='462922']"))
    t.Click();
 
Last edited:

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
Подскажите, как обработать переменную c текстом, чтобы удалить из нее строки где меньше 5 слов, например :-)

Ирина Малина / АиФ
Москва, 18 апреля - АиФ-Москва.

Система оптовых продовольственных рынков в ближайшее время будет создана в крупных городах России, заявил премьер Михаил Мишустин в понедельник в ходе оперативного совещания с вице-премьерами.
На этих рынках отечественные сельхозпроизводители смогут сбывать свою продукцию «как можно ближе к потребителю».
«Это позволит обеспечить широкий выбор продуктов для всех желающих. Ведь помимо оптовых продаж там будут созданы условия и для розничной торговли. А значит, люди смогут сами выбирать, где им выгоднее и удобнее закупаться», — сказал он.
Мишустин напомнил, что правительство уже утвердило концепцию развития оптовых продовольственных рынков (ОПР). Теперь нужно скорректировать законодательство и внести изменения в национальные стандарты. Премьер поручил вице-премьеру Дмитрию Григоренко вместе с Минпромторгом провести необходимую работу для организации ОПР.
Неделю назад в пресс-центре АиФ прошел круглый стол на тему продовольственной безопасности РФ. Его участники выразили мнение, что стране не грозит голод — отечественные сельхозпроизводители готовы насытить рынок продовольствием.
Оставить
комментарий (0)
Самое интересное в соцсетях
Выделил строки которые нужно удалить!
 

Sergodjan

Administrator
Staff member
Joined
Sep 5, 2012
Messages
21,023
Reaction score
9,356
Points
113
Подскажите, как обработать переменную c текстом, чтобы удалить из нее строки где меньше 5 слов, например :-)
"Обработка текста - Замена" на пустоту по регулярке: (?<=(\r?\n|^)).{0,100}(?=(\r?\n|$))
Правда не по кол-ву слов, а по кол-ву символов идет отбор, но если принять что ср. кол-во символов в слове 10-15, то можно играться значениями до ~ 50-100.

90647
 
  • Thank you
Reactions: udder

Gllory

Client
Joined
Jun 19, 2017
Messages
55
Reaction score
11
Points
8
Нужно отнять от числа 1% и если оно не изменилось, то отнять 1
так не работает

C#:
double num1 = Convert.ToDouble(project.Variables["Var"].Value);
double num2 = num1 * 0.99;
if (num2 == num1)
{
    double num3 = num1 - 1;
    return System.Math.Round(num3,0);
}
else return System.Math.Round(num2,0);
 

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
как-то так

C#:
int num1 = int.Parse(project.Variables["Var"].Value);
int num2 = (int)Math.Round(num1*0.99);
return num1==num2?num1-1:num2;
 
Last edited:
  • Thank you
Reactions: Gllory

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
Как из текста удалить словесную конструкцию когда идет: СЛОВО.РУБРИКА т.е когда идет слово какое то и сразу после слова точка со словом, эту часть нужно ВЫРЕЗАТЬ.
Например. Выделил слова которые нужно удалить
Я посещаю сайт yandex.com, иногда яндекс.рф или ya.ru , но ежедневно ищу информацию через поисковую систему google
 

Ilshakin

Client
Joined
Feb 14, 2017
Messages
642
Reaction score
584
Points
93
Как из текста удалить словесную конструкцию когда идет: СЛОВО.РУБРИКА т.е когда идет слово какое то и сразу после слова точка со словом, эту часть нужно ВЫРЕЗАТЬ.
Например. Выделил слова которые нужно удалить
C#:
return string.Join(" ", project.Variables["переменная с текстом"].Value.Split().Where(x => !Regex.IsMatch(x, @"[a-zA-Zа-яА-ЯёЁ0-9_-]+(\.[a-zA-Zа-яА-ЯёЁ0-9_-]+)*\.[a-zA-Zа-яА-ЯёЁ]{2,5}(?=$|[^a-zA-Zа-яА-ЯёЁ0-9_-])")));
регулярку только под себя подбери - эта для удаления доменов
 
  • Thank you
Reactions: udder

fargot31

Client
Joined
Sep 26, 2017
Messages
84
Reaction score
22
Points
8
Подскажите снипет для поиска совпадений.
Есть строки
string a = "QWE";
string b = "ASQWE"; // в етой строке ищем
На выходе подобное етому значению AS<Q><W><E>

В строке где ищем может быть и так, всегда по разному
string b = "ASQWETY"; // в етой строке ищем, здесь так должно получиться AS<Q><W><E>TY
 

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
Подскажите снипет для поиска совпадений.
Есть строки
string a = "QWE";
string b = "ASQWE"; // в етой строке ищем
На выходе подобное етому значению AS<Q><W><E>

В строке где ищем может быть и так, всегда по разному
string b = "ASQWETY"; // в етой строке ищем, здесь так должно получиться AS<Q><W><E>TY
C#:
string a = "QWE";
string b = "ASQWE"; // в етой строке ищем
return string.Join("", b.Select(x=>a.Contains(x)?$"<{x}>":x.ToString()));
 
  • Thank you
Reactions: fargot31

fargot31

Client
Joined
Sep 26, 2017
Messages
84
Reaction score
22
Points
8

SVRyzhov

Client
Joined
May 17, 2017
Messages
52
Reaction score
6
Points
8
Приветствую!
Перемещаю папки с файлами следующим кодом
C#:
File.Move(fileXL, downloadPathXL + "\\" + fileName); //перемещение с переименованием
Все работает прекрасно, до тех пор пока не встретятся одинаковые имена папок или файлов.
При попытке перемещения с заменой таким кодом
C#:
File.Move(fileXL, downloadPathXL + "\\" + fileName, true); //перемещение с переименованием и заменой
Вылазит ошибка "No overload for method 'Move' takes 3 arguments"
Подскажите в чем косяк и как с ним бороться.

Ну или подскажите какой-то другой алгоритм действий, типа в случае ошибки сначала удалить папку с файлами, а потом копировать.
 

ZSharp

Client
Joined
Sep 29, 2013
Messages
399
Reaction score
128
Points
43
Ну или подскажите какой-то другой алгоритм действий, типа в случае ошибки сначала удалить папку с файлами, а потом копировать.
C#:
string fileNew = downloadPathXL + "\\" + fileName; // Формируем путь к новому файлу

if (File.Exists(fileNew)) // Проверка существования файла
{
    File.Delete(fileNew); // Удалить если файл существует
}

File.Move(fileXL, fileNew); // Перемещение файла
 
  • Thank you
Reactions: SVRyzhov

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)