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

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
  • Спасибо
Реакции: udder и izubr

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
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;
 
  • Спасибо
Реакции: Биржевик и udder

Pavel432511

Новичок
Регистрация
29.07.2022
Сообщения
3
Благодарностей
1
Баллы
3
var rand =new random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.toString()+"-"+randmonth.toString();
Ответьте пожалуйста в телеграм, я не понимаю что с нашей сделкой, два дня просто не отвечаете...
 

AndrewSuul

Новичок
Регистрация
01.04.2022
Сообщения
7
Благодарностей
0
Баллы
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
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113

AndrewSuul

Новичок
Регистрация
01.04.2022
Сообщения
7
Благодарностей
0
Баллы
1
находишь элемент по xpath, скринишь его либо в файл, либо в строку Base64
Получилось) Через КаптчаСейвер.
А как картинку теперь конвертировать в строку Base64?

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

AndrewSuul

Новичок
Регистрация
01.04.2022
Сообщения
7
Благодарностей
0
Баллы
1
Получилось) Через КаптчаСейвер.
А как картинку теперь конвертировать в строку Base64?

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

che100

Client
Регистрация
18.04.2017
Сообщения
808
Благодарностей
503
Баллы
63
Как рандомно взять буквы из ссылки , например https://zennolab.com/discussion и заменить их соответствующими HEX кодами, как делается тут ascii-to-hex ?
 

selyutin0196

Новичок
Регистрация
09.11.2022
Сообщения
4
Благодарностей
0
Баллы
1
Всем привет, подскажите как решить задачу, вроде элементарная. В моей переменной лежат данные в таком виде: 1151644808:7996671437. Нужно разделить данные до двоеточия и после по разным переменным. Чтобы получилось так: Var1 = 1151644808. Var2 = 7996671437. Количество символов до двоеточия и после могут изменятся. Заранее спасибо
 

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
549
Благодарностей
1 130
Баллы
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#.
Шаблон приложил ↓
 

Вложения

Последнее редактирование:

djaga

Administrator
Команда форума
Регистрация
26.04.2020
Сообщения
549
Благодарностей
1 130
Баллы
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"

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

Вложения

Markoonij

Client
Регистрация
13.10.2020
Сообщения
70
Благодарностей
3
Баллы
8
Ребята, привет. Подскажите снипет, пожалуйста для следующей задачи.
В переменной var лежит число с ТОЧКОЙ. Оно может быть как положительным так и отрицательным. Нулем быть не может. Для примера можно взять 0.85 и -0.85

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

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 253
Благодарностей
678
Баллы
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(',','.');
 
Последнее редактирование:
  • Спасибо
Реакции: izubr, Sho и Markoonij

Docent

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

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
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();//максимальное значение
 
Последнее редактирование:
  • Спасибо
Реакции: Docent

Docent

Client
Регистрация
04.08.2015
Сообщения
9
Благодарностей
4
Баллы
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. Входная строка имела неверный формат."? В таблицу сохранялись именно числа с запятой. Они что сохранились как строковые переменные? Или я неверно понимаю причину возникновения данной ошибки?
 
  • Спасибо
Реакции: Alexmd

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
733
Благодарностей
485
Баллы
63
Спасибо большое за ответ. Подскажите, почему на данном коде выдает ошибку "
Выполнение действия CSharp OwnCode. Входная строка имела неверный формат."? В таблицу сохранялись именно числа с запятой. Они что сохранились как строковые переменные? Или я неверно понимаю причину возникновения данной ошибки?
Попробуйте заменить часть кода
C#:
var column = table.GetColumn(columnName).Skip(1).Select(x => double.Parse(x.Replace(",","."))).OrderByDescending(x => x);
Тип double работает с точкой, а у вас запятая (должно быть 1.2, а у вас 1,2)
 
  • Спасибо
Реакции: Docent и Alexmd

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
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);
Однако, так мы, возможно, никогда не узнаем истинно ли это условие, потому что код просто пропустит строки, которые не удалось распарсить.
Остальные строки - числа С ЗАПЯТОЙ.
 
  • Спасибо
Реакции: Docent и Dmitriy Ka

tri_medvedja

Client
Регистрация
27.11.2019
Сообщения
18
Благодарностей
5
Баллы
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
Регистрация
11.09.2016
Сообщения
177
Благодарностей
48
Баллы
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;
 
Последнее редактирование:
  • Спасибо
Реакции: tri_medvedja

tri_medvedja

Client
Регистрация
27.11.2019
Сообщения
18
Благодарностей
5
Баллы
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
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
как на C# реализовать удаление строк из переменной в которой менее 5 слов, как пример.
Переменная содержит построчно текст:
Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю
Нужно обработать так, чтобы остались строки где более 5 слов.

@djaga @Ilshakin
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Не сочтите за невежество, но, хоть меня и не звали, помогу.
C#:
var text = @"Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю";
return string.Join("\n", text.Split('\n').Where(x=>x.Split(' ').Count() > 4));
 

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
Не сочтите за невежество, но, хоть меня и не звали, помогу.
C#:
var text = @"Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю";
return string.Join("\n", text.Split('\n').Where(x=>x.Split(' ').Count() > 4));
Спасибо, буду знать кого еще тегать.
 
  • Спасибо
Реакции: Alexmd и Ilshakin

udder

Client
Регистрация
28.03.2017
Сообщения
618
Благодарностей
128
Баллы
43
@Alexmd @Ilshakin
Помогите со сниппетом.
Нужно сгенерировать числа от 0 до 10000 с интервалом 25
т.е
0
25
50
75
90
.
.
 

tri_medvedja

Client
Регистрация
27.11.2019
Сообщения
18
Благодарностей
5
Баллы
3
C#:
var postlist = project.Lists["числа"];
for (int i = 0; i <= 10000; i += 25)
{
    postlist.Add(i);
}
В список "числа" добавятся числа в твоем диапазоне с интервалом 25
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
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()));
 
  • Спасибо
Реакции: Sanekk, udder и Astraport

Nord

Client
Регистрация
22.03.2012
Сообщения
2 406
Благодарностей
1 473
Баллы
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
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
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
 
  • Спасибо
Реакции: Ilshakin, udder и Nord

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