• Как запрашивать клавишу во время виполнения цикла (Console.ReadKey)?

    @cicatrix
    Денис Фолюш, Да, с флажком гораздо лучше. Я к тому, что выходить из программы надо там, где крутится основной цикл, а не из другого места. Нормальное (и безопасное) завершение - это когда просто исполнение доходит до конца Main. Если выбрасываться из программы в другом месте, можно что-нибудь упустить.
    Пока программа маленькая, легко всё отслеживать, но по мере роста, никогда не знаешь, что добавится и какие ресурсы надо будет корректно освобождать в конце.
    1 точка входа и 1 точка выхода - это должно быть как аксиома.
  • Как разрабатывать настольные приложения с помощью html, css, js, python?

    @cicatrix
    Igor Borisov, Ну как сказать. Вот, допустим, инструкции по установке:
    1. Скачай Node.js (ссылка)
    2. Скачай electron (ссылка)
    3. Скачай питон (уточни версию!) (ссылка)
    4. Скачай мою замечательную программу.
    Вот так вот "в лоб" без установщика и скрипта.... Впрочем, можно в один архив запихнуть. Но тогда ведь и обновлять придётся... я когда такое вижу, сразу уже ничего не хочется.
  • Как разрабатывать настольные приложения с помощью html, css, js, python?

    @cicatrix
    Igor Borisov, Я вот думаю, что должно быть это за дексктопная программа, чтобы я захотел вместе с ней всё это г на свой комп установить вдовесок :)
  • Как реализовать систему отслеживания статуса пользователя программы реализованную на C#?

    @cicatrix
    bugakovAM, я не зря спросил, по какому протоколу связь работает, ибо, в зависимости от этого возможны нюансы.
    В частности, вопрос в том, может ли клиент принимать входящее соединение или нет. Если может, то сервер может пушить запрос типа "ты жив еще?" и судить по ответу клиента. Если нет, то, опять же, после того, как клиент установил соединение, его можно просто не разрывать.
    Но если инициировать соединение может только клиент, то да, периодически отправляется сообщение "я живой" на сервер. Далее по протоколу, например, сервер может сообщить, через сколько секунд желательно снова подать сигнал, а можно и тупо по таймеру. Соединился отправил исходящие сообщения, спросил, есть ли входящие, скачал и отключился.
    Если бы я разрабатывал, то для сигналов жизнедеятельности слал бы по протоколу udp, а данные передавал бы по tcp. Разработка протокола связи вообще интересная вещь, но начинать её лучше не с клавиатурой, а с тетрадкой и ручкой.
  • Какие материалы изучить для написания читов для игр?

    @cicatrix
    AlexsandrLomaev,
    Ну бери материалы по реверс-инжинирингу и ассемблеру под платформу , на которой чит будет (винда?).
    В любом случае - удачи, просто, если осилишь, боюсь писать читы тебе будет уже не интересно )))
    В реверс-инжиниринг не все могут, там готовых приёмов нет.
  • Как запрашивать клавишу во время виполнения цикла (Console.ReadKey)?

    @cicatrix
    Денис Фолюш, ,Не стоит пользоваться Environment.Exit()
    В целом, им вообще не стоит пользоваться без крайне веских на то причин. Тем более, что у вас многопоточность. Вы не можете знать, на какой операции из цикла вы уничтожите процесс, а это может оказаться критичным, если у вас там файлы открыты или ещё какие-нибудь ресурсы используются. Гораздо лучше и надёжнее передать состояние выхода (флаг exit в моём варианте) в основной поток и дать циклу завершиться штатно, освобождая все ресурсы.
  • Какие книги можете посоветовать для Backend-разработчика?

    @cicatrix
    Василий Банников, То, что вы описали, строго говоря, к бэку не относится. Да, есть в MVC Razor или Blazor, но это уже типа претензия на "фуллстек". Я вот терпеть не могу писать логику пользовательских интерфейсов (ни в каком виде, ни в вебе, ни в десктопе, иногда скучаю по старому доброму Winforms, где всё было просто и понятно), для меня MVC начинается контроллером и заканчивается отдачей JSON (ну, на крайний случай - отдачей вьюхи). Что там во фронте происходит - не знаю и знать не хочу, если честно. Понятное дело, что приходилось и JS обмазываться, но кайфа никакого. Бэк - это бэк. Бизнес-логика + API. Кнопочки, спискота, рюшечки, стили, градиенты, анимация - фтопку. Пусть этим занимаются те, кому это нравится.
  • Какие книги можете посоветовать для Backend-разработчика?

    @cicatrix
    Василий Банников, Вы просто не умеете его готовить. Как человек, измученный WebForms в своё время принял "на ура".
    Впрочем, хотел бы ознакомиться с альтернативами?
    И причём здесь jquery?
  • Какие книги можете посоветовать для Backend-разработчика?

    @cicatrix
    Nikita07, то, что называется модным словом бэкэнд по сути - программирование общего назначения. В современных реалиях, бэкэндом называют прослойку между клиентской частью и сервером баз данных. Поэтому я и написал про шутку про SQL over Http. В более сложных случаях на бэке реализуется то, что называется "бизнес-логикой". Вот она может быть вообще любой и зависит уже от того, бэк к чему конкретно вы пишете.
    Собственно, бэкэнд это
    1. Приём запроса
    2. Подготовка ответа
    3. Отправка ответа
    Если брать такой вот общий случай, то это в принципе ничем не отличается от написания обычной десктопной программы, только вместо оконного интерфейса или командной строки у вас веб-морда. Всё остальное, что делает бэк - зависит уже от конкретной решаемой задачи (что это - интернет-магазин, сервис хостинга картинок, социальная сеть и пр).
    Вот например, нарисовал фронт кнопку поиска на странице, ваша задача - реализовать эндпоинт (точку входа) с названием, например search, которая примет поисковый запрос. Затем вам по этому запросу нужно сходить в базу данных, найти подходящие данные и вернуть эти данные в виде ответа (обычно, в виде Json или XML, но это уже опять диктуется архитектурой и проектной документацией (если вам повезло и она есть, конечно) :)
    Если вы задаёте вопрос с тэгом C#, то вам надо изучить ASP.NET Core и ознакомиться с паттерном MVC (Модель, представление, контроллер).
    В сети огромное количество материалов на все вкусы и цвета.
  • Как разрабатывать настольные приложения с помощью html, css, js, python?

    @cicatrix
    Что я вам и сообщал в комментарии - Electron, это хромиум с доступом к Node.js (де-факто вашим сервером, который будет отрабатывать запросы от браузера). Итого, чтобы поставить ваше приложение на машину пользователя надо ему установить Electron (с довеском в виде Chromium и Node.js) + Python.
    И всё это вместо того, чтобы дать ему один исполняемый в нативной среде файл.
  • Как разрабатывать настольные приложения с помощью html, css, js, python?

    @cicatrix
    Developer, Он запустится в браузере (парсере html). JS на странице будет обрабатываться виртуальной машиной встроенного в браузер интерпретатора. По сути, это песочница. Если вы хотите использовать модули питона в программе, они должны будут работать на уровне приложений операционной системы. "Достучаться" до них из браузера вы сможете только отправкой веб-запросов (куда?) Вот тут-то вам и нужен будет веб-сервер, который будет принимать эти запросы из браузера и обрабатывать их соответствующим образом.
    В вашей же "архитектуре" возможно исполнение только JS-скриптов. В принципе, это вполне рабочее решение, но дальше браузер с вменяемыми настройками безопасности вас не пропустит. Можно, конечно, попросить пользователя установить какой-нибудь плагин, но это уже извращения.
  • Как разрабатывать настольные приложения с помощью html, css, js, python?

    @cicatrix
    Может, я устарел, но ведь настольное приложение тем и отличается от веба, что требует меньших объёмов.
    Для html+css нужен как минимум парсер, то есть обычно - браузер. Для интеграции - веб-сервер (или то, что его заменяет). Чтобы использовать подобное приложение, получается, пользователь дожен запустить сервер, а затем дождаться загрузки вашего приложения в браузере.
    И это вместо того, чтобы использовать GUI-фреймворки, сразу для этого предназначенные (wxWidgets, Qt, и пр.). Воистину, вы хотите странного.
  • Как лаунчеры защищают файлы от подмены?

    @cicatrix
    Dr. Bacon, Полностью нельзя. Что один сделал, другой всегда сломать может. Задача защиты - сделать взлом максимально невыгодным по времени и трудоёмким по исполнению. Это как с телохранителями - если очень кого-то надо грохнуть, его обязательно грохнут. Задача телохранителя - сделать убийство максимально невыгодным и дорогим.
  • Можно ли установит диагноз батареи на ноутбуке?

    @cicatrix Автор вопроса
    6 лет уже. :( Прекрасно всё работало.
  • Как реализовать конвертацию в список int строку с тире и запятыми?

    @cicatrix
    А вы здесь исполнителя ищете, который вам код напишет? Сколько за работу предлагаете?
    Здесь обычно спрашивают, как исправить ошибку, когда что-то не получается, а не сделать всё за вас.
    Делаете класс или структуру - там 2 поля, начало диапазона, конец диапазона.
    Бьёте строку по запятым - это ваш список диапазонов (единичные цифры - диапазон, где начало и конец совпадают).
    Если в диапазоне есть дефис, отдельно бьёте эту подстроку на 2 с разделителем дефисом. Получаете начало и конец диапазона.
    Ну и проверок добавить, чтобы букв не было, лишних символов, чтобы начало диапазона меньше конца было, и т. д.
    Впрочем, эту валидацию можно и в интерфейсе предусмотреть.
  • Как найти строку после символа?

    @cicatrix
    Герман Коффман, IndexOf вернёт -1, если ничего не найдёт.
    while ( pos < input.Length && pat >= 0)
  • Как найти строку после символа?

    @cicatrix
    Герман Коффман,
    using System;
    using System.Collections.Generic;
    namespace ConsoleApp2
    {
        class Program
        {
            static void Main(string[] args)
            {
                string input = "blablabla print('Test 1'); blabla print('Test 2')";
    
                string pat = "print('";
                int pos = 0; 
                List<string> findings = new List<string>();
                while ( pos < input.Length)
                {
                    pos = input.IndexOf(pat, pos);
                    if (pos < 0) break; else pos += pat.Length;
                    int endpos = input.IndexOf("'", pos);
                    if (endpos > 0)
                    {
                        findings.Add(input.Substring(pos, endpos - pos));
                        pos = endpos + 1;
                    }
                }
                foreach(var item in findings) { Console.WriteLine(item); }
                Console.ReadLine();
            } // void Main
        } // class Program    
    } // namespace
  • Как найти строку после символа?

    @cicatrix
    Герман Коффман, Ну, значит, несколько шаблонов нужно использовать. Ну или один универсальный (в них можно ИЛИ условие вставлять). Но лучше разные, так легче потом код поддерживать.
    Начинается всё с анализа исходного текста и уточнения задачи. Под каждую пишется своя регулярка.
    В сети на стандартные задачи (парсинг телефонов, адресов эл. почты, адресов URL, IP адресов, дат в нужном формате и пр.) уже готовые выражения можно найти. Здесь, например https://regular-expressions.mobi
    Ну и на stackoverflow тоже поискать можно.
    Если какая-то экзотика нужна, то проще спросить уже конкретно - дать образец текста и что найти надо и попросить регулярочку под неё.
  • Как найти строку после символа?

    @cicatrix
    Герман Коффман,
    И что нужно изменить чтобы она допустим искала символы после точки, но те которые оканчиваются например ;?

    Регулярку, соответственно, менять надо.
    Шаблоны можно в онлайне тестировать, например здесь:
    regexstorm.net/tester