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

  • Автор темы Автор темы CSS
  • Дата начала Дата начала
  • Спасибо
Реакции: udder и izubr
Компиляция кода Ошибка в действии "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
var rand =new random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.toString()+"-"+randmonth.toString();
Ответьте пожалуйста в телеграм, я не понимаю что с нашей сделкой, два дня просто не отвечаете...
 
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
 
находишь элемент по xpath, скринишь его либо в файл, либо в строку Base64

Получилось) Через КаптчаСейвер.
А как картинку теперь конвертировать в строку Base64?

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

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

Картинка в base64
Подсмотрел рабочий вариант у Юрий Йосифович
Спасибо!
 
Как рандомно взять буквы из ссылки , например https://zennolab.com/discussion и заменить их соответствующими HEX кодами, как делается тут ascii-to-hex ?
 
Всем привет, подскажите как решить задачу, вроде элементарная. В моей переменной лежат данные в таком виде: 1151644808:7996671437. Нужно разделить данные до двоеточия и после по разным переменным. Чтобы получилось так: Var1 = 1151644808. Var2 = 7996671437. Количество символов до двоеточия и после могут изменятся. Заранее спасибо
 
Всем привет, подскажите как решить задачу, вроде элементарная. В моей переменной лежат данные в таком виде: 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#.
Шаблон приложил ↓
 

Вложения

Последнее редактирование:
Как рандомно взять буквы из ссылки, например 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"

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

Вложения

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

Если var>0, то конвертируем его так: var+1
Если var<0, то так: 1/|var|+1 (тут деление по модулю).
 
Ребята, привет. Подскажите снипет, пожалуйста для следующей задачи.
В переменной 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
Всем добрый день. Прошу помощи в написании кода сишарп для следующего случая:
есть таблица в которой первая строка везде строковая переменная (она в дальнейшем сравнении не нужна).
Остальные строки - числа С ЗАПЯТОЙ.
Нужно взять произвольный столбец с номером N, исключить из него первую строку (строковую) и определить в этом столбце максимальное и минимальное значение и положить их в переменные.
 
Всем добрый день. Прошу помощи в написании кода сишарп для следующего случая:
есть таблица в которой первая строка везде строковая переменная (она в дальнейшем сравнении не нужна).
Остальные строки - числа С ЗАПЯТОЙ.
Нужно взять произвольный столбец с номером 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
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
Спасибо большое за ответ. Подскажите, почему на данном коде выдает ошибку "
Выполнение действия 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
Тип 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
Добрый день!
Кто может подсказать, как присвоить значение переменной, исходя из значения другой переменной?
Есть таблица (это условный пример):
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?
 
Добрый день!
Кто может подсказать, как присвоить значение переменной, исходя из значения другой переменной?
Есть таблица (это условный пример):
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
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;

Спасибо, заработало!!!
 
как на C# реализовать удаление строк из переменной в которой менее 5 слов, как пример.
Переменная содержит построчно текст:
Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю

Нужно обработать так, чтобы остались строки где более 5 слов.

@djaga @Ilshakin
 
Не сочтите за невежество, но, хоть меня и не звали, помогу.
C#:
Развернуть Свернуть Копировать
var text = @"Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю";
return string.Join("\n", text.Split('\n').Where(x=>x.Split(' ').Count() > 4));
 
Не сочтите за невежество, но, хоть меня и не звали, помогу.
C#:
Развернуть Свернуть Копировать
var text = @"Привет как дела, что нового?
Я дома
Позвони
Перезвони как доедешь до дома, я скучаю";
return string.Join("\n", text.Split('\n').Where(x=>x.Split(' ').Count() > 4));
Спасибо, буду знать кого еще тегать.
 
  • Спасибо
Реакции: Alexmd и Ilshakin
@Alexmd @Ilshakin
Помогите со сниппетом.
Нужно сгенерировать числа от 0 до 10000 с интервалом 25
т.е
0
25
50
75
90
.
.
 
C#:
Развернуть Свернуть Копировать
var postlist = project.Lists["числа"];
for (int i = 0; i <= 10000; i += 25)
{
    postlist.Add(i);
}
В список "числа" добавятся числа в твоем диапазоне с интервалом 25
 
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
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()));
Такими изощрениями типа быстрее будет?
 
Такими изощрениями типа быстрее будет?
Определенно.
Можно легко проверить изменив условие с 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

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