Задать вопрос
  • Как удалить все символы, кроме нужных?

    Похоже на кейс для регулярок.
    В вашем случае будет
    (TypeItem-[^\-]*-Count)-
    Ответ написан
    Комментировать
  • Как сохранить Dictionary в файл, с возможностью измениния значений в файле?

    Я бы предпочёл использовать какой-нибудь из существующих форматов: json, yaml, ini, toml.
    Но в принципе парсер вашего формата пишется в 5 строчек (буквально)
    Запись:
    var dictionary = new Dictionary<string, string>();
    var sb = new StringBuilder();
    foreach(var kv in dictionary) { // В принципе, можно оптимизировать, если писать не в StringBuilder, а сразу в стрим, который ассоциируется с файлом.
        sb.AppendLine($"{kv.Key}={kv.Value}");
    }
    var text = sb.ToString();
    // Дальше пишем text в файл.


    Чтение:
    var dictionary = new Dictionary<string,string>();
    var lines= File.ReadAllLines("pathToFile"); // читаем построчно
    foreach(var line in lines) {
      var tokens = line.Split("=");
      var key = tokens[0].Trim();
      var value = string.Join("", tokens.Skip(1)).Trim();
      dictionary[key] = value;
    }
    // Используем dictionary как хотим


    UPD: Я вспомнил, что мне этот формат напоминает. Это же dotenv
    Ответ написан
    3 комментария
  • Как из этого кода сделать счетчик времени?

    Я не эксперт по тому, как правильнее работать со временем в юнити, но предположу, что вам нужно что-то типа этого:
    public System.TimeSpan time;
    public Text timerText;
    void Start()
    {
      timerText.text = time.ToString("hh:mm:ss"); // 00:00:00
    }
    void Update()
    {
      time = time.AddSeconds(Time.deltaTime);
      // Не уверен, что это стоит делать каждый кадр, но пусть так
      timerText.text = time.ToString("hh:mm:ss");
    }
    Ответ написан
    Комментировать
  • Как сделать AUTO_INCREMENT в postgresql?

    Если вам нужно создать таблицу, то автоинкремент делается так:
    CREATE TABLE commands (
    id serial PRIMARY KEY
    )

    если нужно изменить таблицу, то тогда сначала создать последовательность, которую создаёт serial, а потом уже применить её к колонке
    Ответ написан
  • Как выполнить данное задание на позицию тестировщика?

    1. Зачем откликаться на вакансию, о которой вообще не смыслите?
    2. Тест-кейсы -- это из базовой теории тестирования.
    Автотест - это некая программа/скрипт, который будет этот тест-кейс выполнять сам, без участия человека.

    Читайте теорию тест-дизайна.
    Есть ещё неплохой ресурс:
    https://ulearn.me/Course/Testing/Vvedenie_5656d8a3...
    и специальный для тестировщиков:
    https://software-testing.ru/
    Ответ написан
    Комментировать
  • Можно ли подключить телеграм бота на rest api?

    Можно, разрешаю
    Ответ написан
    Комментировать
  • Можно программировать на Kotlin без java?

    Если без JVM вообще, то нельзя - компилятор kotlin использует jvm
    Если без Java, как языка, то можно - просто не используете Java
    Если без Java, в смысле Java API, то можно - нужно использовать Kotlin native или Kotlin JavaScript
    Ответ написан
    9 комментариев
  • Как выводить графику в wpf, ПОЧЕМУ У МЕНЯ зависает окно на 1-2 секунды, после любого изменения размеров окна?

    1. Картинку рисуй в фоновом потоке, а выводи в основном
    2. Не используй System.Drawing - он тормозной. Посмотри в сторону skia
    Для 3d есть opengl и другие специальные api для рисования при помощи видеокарты.
    Ответ написан
    Комментировать
  • Как запустить потоки поочередно?

    Join блокирует вызывающий поток, пока не завершится тот, который джоинят.
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
    Возможно, вам нужны не потоки, а таски и async/await.
    Ещё вы можете использовать коллбэки, чтобы запускать новый поток после завершения старого (но если честно, это какая-то синтетическая задача - в такой ситуации можно всё в одном потоке выполнить)
    Ответ написан
    Комментировать
  • Поддерживает ли intellij idea язык swift?

    intellij idea - нет, но есть appcode, который поддерживает.
    Естественно, только под мак.
    Ответ написан
    2 комментария
  • Как защитить базу postgres от ошибочного запроса?

    к примеру UPDATE без WHERE, ну мало ли, человеческий фактор

    Каким образом можно защититься от подобного рода ошибок?

    1. Бэкапы
    2. Ограничить человеческий фактор
    - Делать как можно меньше запросов вручную
    - Ограничить круг людей, которые могут это регулярно делать
    - Убрать соблазн сделать запись вручную (в datagrip можно поставить галочку на базу, как read-only и без подтверждения не получится послать туда запрос не на чтение)
    Ответ написан
    4 комментария
  • Стоит ли доверять?

    Увидел на сайте по продажам бу вещей, бесплатный товар разбитый но рабочий планшет, автор просит в замен шиколадку,

    Ну вот за шоколадку и забирай.

    либо автор добрый, либо он хочет както обмануть меня на доставке товара

    Если боишься по поводу доставки, то забирай самовывозом.
    Ответ написан
    Комментировать
  • Использование VPS SSH с GitHub?

    по-идеи, если юзать с судо, то должно браться же с домашней папки рута, а там как раз есть этот ключ..

    Нет.
    Ответ написан
  • Почему экземпляр производного класса приводят к базовому абстрактному типу?


    Говорят, что экземпляр производного класса, наследующийся от абстрактного (класса, интерфейса), принято приводить к базовому типу. Почти всегда.

    Ни разу о таком не слышал. Мне кажется, это какой-то бред сумасшедшего, который ни разу не написал ни одной строчки кода.

    На C# очень многие используют стиль VIP (var if possible), в таком стиле ваш код будет выглядеть так:
    var instance = new  DerivedClass();
    instance.Method1(); // Красиво, компактно, никаких проблем.
    instance.Method2();


    В коде выше, из за приведения к базовому абстрактному типу, мы вынуждены создавать 2 экземпляра класса.

    Нет. Можно написать так:
    DerivedClass instance= new DerivedClass(); // только 1 экземпляр
    Interface1 instance1 = instance; // Но всё равно очень громоздко.
    Interface2 instance2 = instance;


    Не нужна "лишняя" операция приведения (апкаст).

    Апкаст - это бесплатная операция.

    Единтвенный лучай, когда нужно приводить класс к интерфейсу - это явная реализация интерфейса (без апкаста тупо не получится вызвать его методы)
    PS: простой код лучше сложного.
    Ответ написан
    5 комментариев
  • Как обновить значение переменной?

    Каждый тик таймера вы устанавливаете определённое значение переменной.
    В вашем случае нужно где-то сохранять данные об оставшемся количестве.
    Предлагаю вам завести класс, который хранит количество всего и поместить их в словарь.
    Будет что-то наподобие
    private Dictionary<string, Item> Inventory = new () {
        ["Дробовик"] = new () { Damage = 36, Clip = 30, Stock = 60 },
        ["Автомат"] = new () { Damage = 30, Clip = 30, Stock = 60 },
        ["Базука"] = new () { Damage = 51, Clip = 1, Stock = 2 }
    };
    public Item SelectedItem {get; set;}
    private void timer1_Tick(object sender, EventArgs e) {
      SelectedItem = Inventory[combobox.Text];
    }

    А потом там где вы выводите текст:
    label1.Text = SelectedItem?.Clip.ToString() ?? "";
    Ответ написан
    Комментировать
  • Как защититься от SQL инъекции в asp.net core? правильно ли я пишу?

    Сначала по пунктам, как ты делаешь:
    1. Кривое именование. Dapper позволяет маппить имена колонок к именам свойств.
    2. Похоже на ок, но стоит разбить интерфейс. Тк, скорее всего, не для всех сущностей будут нужны все эти методы.
    Именование не ок.
    dbConnection стоит переиспользовать.
    dbConnection.Dispose руками писать не нужно, тк dbConnection и так завёрнут в using
    SELECT * лучше не использовать
    Правильно ли я делаю?

    Не совсем

    Нет ли ошибок?

    Есть

    Как можно защититься от инъекции?

    Валидировать ввод.
    Не уверен, проверяет ли даппер сам параметры, но вы используете параметризованные запросы - так что должно быть ок.
    Если что - можете сами попытаться провести инъекцию (сами состаьте запрос или через burp suite)

    Например, в php экранировали вводимую пользователем форму например htmlspecialchars, надо ли на net core так же делать?

    Dapper сам должен это делать.
    Ответ написан
    Комментировать
  • Как осуществить контроль и статус ASIC'ов с помощью telegram бота на Python?

    1. Если готовая инфа есть, то уточнять её надо у производителя асика - возможно, у него есть апи, а может и нет.
    2. Посмотреть, какие запросы делает фронтенд, чтобы узнать температуру и прочее. Из питона надо будет эти запросы имитировать. Если там нет апи, то надо будет парить html
    3. Если они находятся в одной сети, то надо будет просто обращаться по ip. Если бот и асики будут в разных сетях, то сети надо будет объединить по VPN
    3.1 - есть технология mDNS (вроде так называется, но я не уверен) - можно с помощью неё узнавать актуальный адрес, если асики её используют. Другой вариант - привязать IP к MAC-адресу асиков.
    Ответ написан
    4 комментария
  • Параметры функции?

    Зачем передавать переменные-параметры в функцию, если можно писать глобальное объявление переменных?

    1. Чтобы избавлять от дублирования (ну вообще это сам смысл функций)
    2. Чтобы удобнее работать с этими функциями (сразу видишь, что функция от тебя ждёт)
    3. Чтобы нормально работало в многопоточной среде. (глобальные переменные и многопоток не совестимы)

    Ну вот например менее абcтрактный пример:
    int sum(int a, int b) { // всё отлично, всё понятно
      return a + b;
    }
    
    int a,b;
    // Каким образом мы поймём, что надо перед вызовом sum задать какое-то значение переменным a и b?
    // sum и её "параметры" a и b никак не связаны
    int sum() {
      return a + b;
    }
    
    int sum() { // а как в этом случае нам сложить две переменные? Как задать значения a и b??????
      int a,b;
      return a + b;
    }
    Ответ написан
    Комментировать
  • Как сделать ссылку на проект?

    Ссылку на проект - это в csproj надо написать
    <ItemGroup>
      <ProjectReference Include="../OtherProject/OtherProject.csproj"/>
    </ItemGroup>

    А то что "Ссылки: 0" - это то, в каких местах идёт явное обращение к подсвеченному методу.
    Ответ написан
    Комментировать
  • Запрет на редактирование строки в Mysql по ID?

    Что-то постоянно меняет эти ссылки на свои, в итоге на сайте появляются вирусные редиректы. Когда меняю ссылку на реальную ссылку сайта, он работает нормально.

    Осмелюсь предположить, что надёжнее будет найти то, что подменяет ссылки и удалить, заодно заняться безопасностью сайта.
    Ответ написан
    Комментировать