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

Astraport

Client
Joined
May 1, 2015
Messages
5,006
Reaction score
4,482
Points
113
как генерировать месяц в формате 01, 02, 03
if (randmonth.ToString().Length == 1) randmonth = "0" + randmonth;
 
  • Thank you
Reactions: udder and izubr

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
if (randmonth.ToString().Length == 1) randmonth = "0" + randmonth;
Компиляция кода Ошибка в действии "CS0029" "Cannot implicitly convert type 'string' to 'int'". [Строка: 4; Cтолбец: 51]
 

Astraport

Client
Joined
May 1, 2015
Messages
5,006
Reaction score
4,482
Points
113
Компиляция кода Ошибка в действии "CS0029" "Cannot implicitly convert type 'string' to 'int'". [Строка: 4; Cтолбец: 51]
Вот полная версия:

C#:
var rand =new Random();
var randyear= rand.Next(1999,2022);
string randmonth=rand.Next(1,12).ToString();
if (randmonth.Length == 1) randmonth = "0" + randmonth;
var date= randyear.ToString()+"-"+randmonth.ToString();
return date;
 

Pavel432511

Новичок
Joined
Jul 29, 2022
Messages
3
Reaction score
1
Points
3
var rand =new random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.toString()+"-"+randmonth.toString();
Ответьте пожалуйста в телеграм, я не понимаю что с нашей сделкой, два дня просто не отвечаете...
 

AndrewSuul

Новичок
Joined
Apr 1, 2022
Messages
7
Reaction score
0
Points
1
C#:
string path = project.Directory + @"\TabScreenshots\image.jpg";
var preview = instance.ActiveTab.GetPagePreview();
MemoryStream ms = new MemoryStream(Convert.FromBase64String(preview));
Bitmap bmp = new Bitmap(ms);
ms.Close();
bmp.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);
bmp.Dispose();
Подскажи пожалуйста, а как получить область экрана?
Вот эту например https://prnt.sc/OYYM5DQXO17I
 

Phoenix78

Client
Read only
Joined
Nov 6, 2018
Messages
11,789
Reaction score
5,726
Points
113
Подскажи пожалуйста, а как получить область экрана?
Вот эту например https://prnt.sc/OYYM5DQXO17I
находишь элемент по xpath, скринишь его либо в файл, либо в строку Base64
 

AndrewSuul

Новичок
Joined
Apr 1, 2022
Messages
7
Reaction score
0
Points
1
находишь элемент по xpath, скринишь его либо в файл, либо в строку Base64
Получилось) Через КаптчаСейвер.
А как картинку теперь конвертировать в строку Base64?

П.С.
Задача, отправить данные на сервис решения каптчи, для того чтоб в ответ получить координаты кликов.
Вот как тут описано http://learn.captcha.guru/#/ru/hcaptchaclick
 

AndrewSuul

Новичок
Joined
Apr 1, 2022
Messages
7
Reaction score
0
Points
1
Получилось) Через КаптчаСейвер.
А как картинку теперь конвертировать в строку Base64?

П.С.
Задача, отправить данные на сервис решения каптчи, для того чтоб в ответ получить координаты кликов.
Вот как тут описано http://learn.captcha.guru/#/ru/hcaptchaclick
Картинка в base64
Подсмотрел рабочий вариант у Юрий Йосифович
Спасибо!
 

che100

Client
Joined
Apr 18, 2017
Messages
808
Reaction score
505
Points
93
Как рандомно взять буквы из ссылки , например https://zennolab.com/discussion и заменить их соответствующими HEX кодами, как делается тут ascii-to-hex ?
 

selyutin0196

Новичок
Joined
Nov 9, 2022
Messages
4
Reaction score
0
Points
1
Всем привет, подскажите как решить задачу, вроде элементарная. В моей переменной лежат данные в таком виде: 1151644808:7996671437. Нужно разделить данные до двоеточия и после по разным переменным. Чтобы получилось так: Var1 = 1151644808. Var2 = 7996671437. Количество символов до двоеточия и после могут изменятся. Заранее спасибо
 

djaga

Administrator
Staff member
Joined
Apr 26, 2020
Messages
562
Reaction score
1,144
Points
93
Всем привет, подскажите как решить задачу, вроде элементарная. В моей переменной лежат данные в таком виде: 1151644808:7996671437. Нужно разделить данные до двоеточия и после по разным переменным. Чтобы получилось так: Var1 = 1151644808. Var2 = 7996671437. Количество символов до двоеточия и после могут изменятся. Заранее спасибо
Привет.
Воспользуйтесь кубиком сплит. Ссылка на FAQ.

Split:
string str = "1151644808:7996671437";
string[] arrSplit = str.Split(new char[] {':'}, StringSplitOptions.RemoveEmptyEntries);
project.Variables["var1"].Value = arrSplit[0];
project.Variables["var2"].Value = arrSplit[1];
upd: добавил пример на C#.
Шаблон приложил ↓
 

Attachments

Last edited:

djaga

Administrator
Staff member
Joined
Apr 26, 2020
Messages
562
Reaction score
1,144
Points
93
Как рандомно взять буквы из ссылки, например https://zennolab.com/discussion и заменить их соответствующими HEX кодами, как делается тут ascii-to-hex ?
Привет.

Возможно вы хотели, что-то подобное:
Взять рандомную букву конвертировать её в байт-код, заменяя в строчке все вхождения:
string str = "zennolab.com/discussion";
int length = str.Length;
var numHelp = length; //Число, которое помогает рандомизировать
var random = new Random((int) DateTime.Now.Ticks & (0x0000FFFF + numHelp));

int num = random.Next(length);
string chunk = str.Substring(num, 1);

byte[] bytes = Encoding.Default.GetBytes(chunk);
string hexStr = BitConverter.ToString(bytes);

string res = str.Replace(chunk, hexStr);
project.SendInfoToLog(res); // результат в лог
Результат:
Было: "zennolab.com/discussion".
Стало: "zennolab.63om/dis63ussion"

Если хотите просто перевести в Hex code как в примере который вы привели выше, то так:
Конвертировать Text в Hex code с разделителем "пробел":
string str = "zennolab.com/discussion";

byte[] bytes = Encoding.Default.GetBytes(str);
string hex = BitConverter.ToString(bytes).Replace("-", " "); // заменить разделитель на пробельный символ

project.SendInfoToLog(hex); // результат в лог
Результат:
Было: "zennolab.com/discussion".
Стало: "7A 65 6E 6E 6F 6C 61 62 2E 63 6F 6D 2F 64 69 73 63 75 73 73 69 6F 6E"

Приложил шаблон с примерами ↓
 

Attachments

Markoonij

Client
Joined
Oct 13, 2020
Messages
71
Reaction score
3
Points
8
Ребята, привет. Подскажите снипет, пожалуйста для следующей задачи.
В переменной var лежит число с ТОЧКОЙ. Оно может быть как положительным так и отрицательным. Нулем быть не может. Для примера можно взять 0.85 и -0.85

Если var>0, то конвертируем его так: var+1
Если var<0, то так: 1/|var|+1 (тут деление по модулю).
 

Sherminator

Client
Joined
Sep 10, 2021
Messages
1,453
Reaction score
831
Points
113
Ребята, привет. Подскажите снипет, пожалуйста для следующей задачи.
В переменной var лежит число с ТОЧКОЙ. Оно может быть как положительным так и отрицательным. Нулем быть не может. Для примера можно взять 0.85 и -0.85

Если var>0, то конвертируем его так: var+1
Если var<0, то так: 1/|var|+1 (тут деление по модулю).
C#:
            string a = project.Variables["Peremennaya"].Value.Replace('.',',');  //Вместо Peremennaya указать название своей переменной
            decimal b = Convert.ToDecimal(a);

            if(b>0)
            {
                b += 1;
            }
            else
            {
                b = (1/b)+1;
            }


            return b.ToString().Replace(',','.');
 
Last edited:

Docent

Client
Joined
Aug 4, 2015
Messages
9
Reaction score
4
Points
3
Всем добрый день. Прошу помощи в написании кода сишарп для следующего случая:
есть таблица в которой первая строка везде строковая переменная (она в дальнейшем сравнении не нужна).
Остальные строки - числа С ЗАПЯТОЙ.
Нужно взять произвольный столбец с номером N, исключить из него первую строку (строковую) и определить в этом столбце максимальное и минимальное значение и положить их в переменные.
 

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
Всем добрый день. Прошу помощи в написании кода сишарп для следующего случая:
есть таблица в которой первая строка везде строковая переменная (она в дальнейшем сравнении не нужна).
Остальные строки - числа С ЗАПЯТОЙ.
Нужно взять произвольный столбец с номером N, исключить из него первую строку (строковую) и определить в этом столбце максимальное и минимальное значение и положить их в переменные.
C#:
var table = project.Tables["table"];//подставить свою таблицу
var columnName = project.Variables["columnName"].Value;//переменная с именем колонки
//var columnName = int.Parse(project.Variables["columnName"].Value);//или порядковый номер требуемой колонки
//Закомментировать одну из двух строк выше, исходя из условия выбора колонки
var column = table.GetColumn(columnName).Skip(1).Select(x=>double.Parse(x)).OrderByDescending(x=>x);
project.Variables["min"].Value = column.Last().ToString();//минимальное значение
project.Variables["max"].Value = column.First().ToString();//максимальное значение
 
Last edited:
  • Thank you
Reactions: Docent

Docent

Client
Joined
Aug 4, 2015
Messages
9
Reaction score
4
Points
3
C#:
var table = project.Tables["table"];//подставить свою таблицу
var columnName = project.Variables["columnName"].Value;//переменная с именем колонки
//var columnName = int.Parse(project.Variables["columnName"].Value);//или порядковый номер требуемой колонки
//Закомментировать одну из двух строк выше, исходя из условия выбора колонки
var column = table.GetColumn(columnName).Skip(1).Select(x=>double.Parse(x)).OrderByDescending(x=>x);
project.Variables["min"].Value = column.Last().ToString();//минимальное значение
project.Variables["max"].Value = column.First().ToString();//максимальное значение
Спасибо большое за ответ. Подскажите, почему на данном коде выдает ошибку "
Выполнение действия CSharp OwnCode. Входная строка имела неверный формат."? В таблицу сохранялись именно числа с запятой. Они что сохранились как строковые переменные? Или я неверно понимаю причину возникновения данной ошибки?
 
  • Thank you
Reactions: Alexmd

Dmitriy Ka

Client
Joined
May 3, 2016
Messages
821
Reaction score
567
Points
93
Спасибо большое за ответ. Подскажите, почему на данном коде выдает ошибку "
Выполнение действия CSharp OwnCode. Входная строка имела неверный формат."? В таблицу сохранялись именно числа с запятой. Они что сохранились как строковые переменные? Или я неверно понимаю причину возникновения данной ошибки?
Попробуйте заменить часть кода
C#:
var column = table.GetColumn(columnName).Skip(1).Select(x => double.Parse(x.Replace(",","."))).OrderByDescending(x => x);
Тип double работает с точкой, а у вас запятая (должно быть 1.2, а у вас 1,2)
 
  • Thank you
Reactions: Docent and Alexmd

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
Тип double работает с точкой
Чуть-чуть мимо. На самом деле, парсинг дробных чисел с плавающей запятой зависит от настроек текущей культуры.
Лечится или заменой запятой на точку, что проще всего в конкретном случае, но корректнее будет указывать культуру принудительно. Вот так:
C#:
var column = table.GetColumn(columnName).Skip(1).Select(x=>double.Parse(x, System.Globalization.CultureInfo.CreateSpecificCulture("Ru-ru"))).OrderByDescending(x=>x);
или указывать явно, какой разделитель используется в списке
C#:
var column = table.GetColumn(columnName).Skip(1).Select(x=>double.Parse(x, new System.Globalization.NumberFormatInfo{NumberDecimalSeparator = ","})).OrderByDescending(x=>x);
Но, если не сработает и это, тогда надо проверять корректность заполнения таблицы. Но и на это можно в итоге не обращать внимания
C#:
var column = table.GetColumn(columnName).Skip(1).Select(x=>{double.TryParse(x, System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.CreateSpecificCulture("Ru-ru"), out double d); return d;}).OrderByDescending(x=>x);
Однако, так мы, возможно, никогда не узнаем истинно ли это условие, потому что код просто пропустит строки, которые не удалось распарсить.
Остальные строки - числа С ЗАПЯТОЙ.
 

tri_medvedja

Client
Joined
Nov 27, 2019
Messages
18
Reaction score
5
Points
3
Добрый день!
Кто может подсказать, как присвоить значение переменной, исходя из значения другой переменной?
Есть таблица (это условный пример):
34 Значение34
48 Значение48
52 Значение52
3 Значение3
...

Я сделал так:

return"34,Значение34|48,Значение48|52,Значение52|3,Значение3|....".Split(',').First(s=>s.Contains(project.Variables["month"].Value)).Split('|')[1];

но, например, при переменной "3" выдает "Значение34", я так понял выдает первое попавшееся значение, которое содержит цифру 3. Как сделать, чтобы выдавало Значение3?
 

Kulya

Client
Joined
Sep 11, 2016
Messages
180
Reaction score
48
Points
28
Добрый день!
Кто может подсказать, как присвоить значение переменной, исходя из значения другой переменной?
Есть таблица (это условный пример):
34 Значение34
48 Значение48
52 Значение52
3 Значение3
...

Я сделал так:

return"34,Значение34|48,Значение48|52,Значение52|3,Значение3|....".Split(',').First(s=>s.Contains(project.Variables["month"].Value)).Split('|')[1];

но, например, при переменной "3" выдает "Значение34", я так понял выдает первое попавшееся значение, которое содержит цифру 3. Как сделать, чтобы выдавало Значение3?
C#:
Dictionary<string, string> dic = new Dictionary<string, string>();

string[] s = ("34,Значение34|48,Значение48|52,Значение52|3,Значение3").Split('|');

foreach (var item in s)
{
    dic.Add(item.Split(',')[0], item.Split(',')[1]);
}

return dic["3"]; //Тут твоя переменная
Еще нюанс в том, что значения key не должны повторяться

Можно еще так:
public class Temp
{
    public string Key;
    public string Value;
} // Это в общий код

List<Temp> list = new List<Temp>();

string[] s = ("34,Значение34|48,Значение48|52,Значение52|3,Значение3").Split('|');

foreach (var item in s)
{
    Temp temp = new Temp()
    {
        Key = item.Split(',')[0],
        Value = item.Split(',')[1]

    };
    list.Add(temp);
}

Temp found = list.Find(item => item.Key == "3");

return found.Value;
 
Last edited:
  • Thank you
Reactions: tri_medvedja

tri_medvedja

Client
Joined
Nov 27, 2019
Messages
18
Reaction score
5
Points
3
C#:
Dictionary<string, string> dic = new Dictionary<string, string>();

string[] s = ("34,Значение34|48,Значение48|52,Значение52|3,Значение3").Split('|');

foreach (var item in s)
{
    dic.Add(item.Split(',')[0], item.Split(',')[1]);
}

return dic["3"]; //Тут твоя переменная
Еще нюанс в том, что значения key не должны повторяться

Можно еще так:
public class Temp
{
    public string Key;
    public string Value;
} // Это в общий код

List<Temp> list = new List<Temp>();

string[] s = ("34,Значение34|48,Значение48|52,Значение52|3,Значение3").Split('|');

foreach (var item in s)
{
    Temp temp = new Temp()
    {
        Key = item.Split(',')[0],
        Value = item.Split(',')[1]

    };
    list.Add(temp);
}

Temp found = list.Find(item => item.Key == "3");

return found.Value;
Спасибо, заработало!!!
 

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
как на C# реализовать удаление строк из переменной в которой менее 5 слов, как пример.
Переменная содержит построчно текст:
Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю
Нужно обработать так, чтобы остались строки где более 5 слов.

@djaga @Ilshakin
 

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
Не сочтите за невежество, но, хоть меня и не звали, помогу.
C#:
var text = @"Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю";
return string.Join("\n", text.Split('\n').Where(x=>x.Split(' ').Count() > 4));
 

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
Не сочтите за невежество, но, хоть меня и не звали, помогу.
C#:
var text = @"Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю";
return string.Join("\n", text.Split('\n').Where(x=>x.Split(' ').Count() > 4));
Спасибо, буду знать кого еще тегать.
 
  • Thank you
Reactions: Alexmd and Ilshakin

udder

Client
Joined
Mar 28, 2017
Messages
633
Reaction score
138
Points
43
@Alexmd @Ilshakin
Помогите со сниппетом.
Нужно сгенерировать числа от 0 до 10000 с интервалом 25
т.е
0
25
50
75
90
.
.
 

tri_medvedja

Client
Joined
Nov 27, 2019
Messages
18
Reaction score
5
Points
3
C#:
var postlist = project.Lists["числа"];
for (int i = 0; i <= 10000; i += 25)
{
    postlist.Add(i);
}
В список "числа" добавятся числа в твоем диапазоне с интервалом 25
 

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
C#:
return string.Join("\n", Enumerable.Range(0, 10000).Where(x => x % 25 == 0));
// или в список
project.Lists["list"].AddRange(Enumerable.Range(0,10000).Where(x =>x % 25 == 0).Select(x=>x.ToString()));
 

Nord

Client
Joined
Mar 22, 2012
Messages
2,415
Reaction score
1,482
Points
113
C#:
return string.Join("\n", Enumerable.Range(0, 10000).Where(x => x % 25 == 0));
// или в список
project.Lists["list"].AddRange(Enumerable.Range(0,10000).Where(x =>x % 25 == 0).Select(x=>x.ToString()));
Такими изощрениями типа быстрее будет?
 

Alexmd

Client
Joined
Dec 10, 2018
Messages
1,021
Reaction score
1,427
Points
113
Такими изощрениями типа быстрее будет?
Определенно.
Можно легко проверить изменив условие с 10000 на миллиард и засечь с секундомером для наглядности
C#:
var st = System.Diagnostics.Stopwatch.StartNew();
project.Lists["list"].AddRange(Enumerable.Range(0,1000000000).Where(x=>x % 25 == 0).Select(x=>x.ToString()));
return st.Elapsed;
//Выполнение кода C#  Результат: 00:00:35.8625377

var st = System.Diagnostics.Stopwatch.StartNew();
for(int i = 0; i < 1000000000; i+=25)
    project.Lists["list"].Add(i.ToString());
return st.Elapsed;
//Выполнение кода C#  Результат: 00:01:47.2100538
Но все это, конечно же, дело вкуса, по большому счету, особенно на конкретной задаче, где разница в скорости составляет вовсе незаметные миллисекунды.
Просто я так решаю подобные задачки.
Мало того, решение выше моего вообще не будет работать, так как списки зенно поддерживают данные типа string
 

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