Задать вопрос
  • Managment studio и c# как взять данные для сравнения из базы данных?

    @cicatrix
    было бы большой ошибкой думать
    Что за база-то?

    if (user != null)
    В твоём коде про user ничего не известно.
    Что возвращается в runner?
    var runner

    Откуда MessageBox в веб-приложении? или это не веб-приложение?

    И главное - какой чудак придумал хранить в базе пароли открытым текстом?
    Ответ написан
    Комментировать
  • На чём мне написать десктопное приложение?

    @cicatrix
    было бы большой ошибкой думать
    Я бы посоветовал вообще разделить функционал и GUI.
    Весь функционал обернул бы в class library (dll), а gui уже потом просто дописал бы к этой либе.
    А писать - да, на чём угодно.
    Если XP, то C# + WinForms.
    Без XP можно WPF (с ним удобно реализовать это):
    Немного нестандартный GUI, в частности нужны ListBox'ы с иконками и чекбоксами.

    На винформах тоже можно, но трудозатрат побольше.

    Ну и экзотический вариант (но не без шарма) - сделать гуй на html + css, а само приложение может реализовывать простейший веб-сервер (ну отдать по запросу html-файлик get-ом и принять инфу post-ом) - зато вообще практически без платформенных зависимостей.
    Ответ написан
    Комментировать
  • Как написать обобщенный фильтр?

    @cicatrix
    было бы большой ошибкой думать
    В данном примере строка сравнивается с Func.

    Я бы сделал так:
    public interface IMyItem
    {
        bool IsMatch(string pattern);
    }
    
    public static IQueryable<T> ApplyFilter<T>(this IQueryable<T> source, string filtertext) where T: IMyItem
    {
        return source.Where(item => item.IsMatch(filtertext));
    }


    Единственный минус - объекты, которые фильтруются, должны будут реализовать интерфейс IMyItem.
    В методе IsMatch, соответственно, должна выполняться проверка, подпадает ли объект под строку поиска или нет.
    Ответ написан
    Комментировать
  • Ввод строки в структуру с помощью СИ?

    @cicatrix
    было бы большой ошибкой думать
    Мне кажется, на первый ввод попадают данные из буфера stdin после scanf
    Ответ написан
  • Чтение и запись лога разными программами?

    @cicatrix
    было бы большой ошибкой думать
    Добавлю к ответу rPman про флаг FileShare описан немного контр-интуитивно. Флаг FileShare устанавливает права на доступ к файлам другим потокам.
    То есть, для потока, который пишет в файл, нужно ставить FileShare.Read - позволить другим читать файл
    Для потока, который читает из файла, нужно ставить FileShare.ReadWrite - позволить другим читать и писать в этот файл.
    Ответ написан
    Комментировать
  • Asp.net почему сбрасывается сессия аутентикации после перезапуска приложения?

    @cicatrix
    было бы большой ошибкой думать
    Обычно аутентификация происходит при установлении сеанса, состояние устанавливается как свойство этого сеанса. Естественно, после перезапуска приложения, сеансы новые и надо производить проверку authentication cookie заново.
    Ответ написан
    Комментировать
  • Как получить цвет пикселя по кординатам на Panel?

    @cicatrix
    было бы большой ошибкой думать
    Получаем картинку панели:
    private static Image PanelToBitmap(Control pnl) {
        var bmp = new Bitmap(pnl.Width, pnl.Height);
        pnl.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
        return bmp;
    }


    Получаем пиксель с картинки:
    Bitmap.GetPixel()
    Ответ написан
    Комментировать
  • Как защитить соединение между двумя приложениями?

    @cicatrix
    было бы большой ошибкой думать
    VPN не? Как бы для этого и предназначено
    А вообще это задача сисадмину, чтобы эндпоинты от деймонов не смотрели в открытую сеть.
    Ответ написан
    8 комментариев
  • Программирование таблицы Excel с привязкой к дате, возможно?

    @cicatrix
    было бы большой ошибкой думать
    Есть функция СЕГОДНЯ() (TODAY), она возвращает сегодняшнюю дату.
    В целом, можно заморочиться, в ячейках указывать условия (если дата < сегодня... ) и далее - условным форматированием по ячейкам.
    Но вообще, есть неплохая коллекция программ - 1С называется. Уверен, что подойдёт.
    Ответ написан
    Комментировать
  • Как сгенировать лабиринт со стенами, что бы в этом лабиринте всегда был путь?

    @cicatrix
    было бы большой ошибкой думать
    В своё время делал довольно прямолинейно. На лабиринте генерил сначала путь из точки А в точку Б случайным образом и помечал эти клетки как проходные. А уж потом вокруг генерировал случайным образом весь остальной лабиринт.
    Ответ написан
    1 комментарий
  • Где-то ошибка в коде?

    @cicatrix
    было бы большой ошибкой думать
    Ну, а ошибку загуглить?
    Startup.cs покажи
    Ответ написан
  • Использование своего же кода на двух местах, реально?

    @cicatrix
    было бы большой ошибкой думать
    Самое главное: Должны быть очень ясные и недвусмысленные доказательства того, что код действительно твой.

    Если твой работодатель использует код сейчас бесплатно, должно быть хоть какое-нибудь EULA или договор-оферта, которую работодатель акцептовал бы самим фактом использования. При увольнении надо уведомить работодателя об изменении EULA и зафиксировать акцепт новой оферты. Идеально было бы, если бы вообще был какой-никакой договор (пусть за 3 копейки), в котором работодатель приобретал бы срочное право использования. Думаю, протащить под шумок такой договор (особенно, если сумма смешная) будет просто. Твоим представителем может быть какой-нибудь родственник или юр. лицо, если не хочешь палиться сам.

    В этом случае, либо при изменении EULA твой работодатель продолжает платить, либо перестаёт пользоваться.
    Соломку надо стелить заранее.
    Ответ написан
    Комментировать
  • В чем ошибка при десериализации xml?

    @cicatrix
    было бы большой ошибкой думать
    Индекс вне границ массива, потому что внутри списка пусто. А пусто, потому что класс неправильно организован.

    Вот так должно быть:
    [XmlRoot]
    public class A
    {
        [System.Xml.Serialization.XmlElementAttribute("url")]
        public Reply[] replies { get; set; }
    
        [XmlTypeAttribute(AnonymousType = true)]
        public class Reply
        {
            [XmlAttribute("replyId")]
            public string replyId { get; set; }
            [XmlText()]
            public string Url { get; set; }
        } // Url
    } // class A


    Вообще, класс под XML лучше не писать, а просто скопировать текст из XML/Json и в Visual Studio в меню выбрать: Edit/Paste Special/Paste as XML classes.
    606ff76b7dd6e768671799.png
    Ответ написан
    1 комментарий
  • Почему никак не узнать исходный код игры?

    @cicatrix
    было бы большой ошибкой думать
    Справедливости ради стоит отметить, что много современных игр состоят из 2 основных частей.
    Первая - это т. н. "движок", он отвечает за визуализацию моделей, обработку ввода, сеть, просчёт физики и пр. Он действительно обычно скомпилирован в машинный код и его дизассемблирование очень затруднено.
    Вторая часть - это игровая логика, она уже отвечает за сценарий, определяет, что произойдёт в игре на определённые действия игрока, открывает уровни, изменяет параметры самой игры, и пр.
    Очень часто, игровая логика описывается скриптами, которые доступны для чтения.
    Разумеется, это не всегда так, но очень часто игровые студии не имеют ресурсов или желания для разработки собственного движка, а сосредотачиваются на самой игре.
    Огромное количнство игр, даже ААА сделаны именно так. Думаю, движки Unity и UnrealEngine в совокупности отжирают более половины мирового рынка игр.
    Ответ написан
    Комментировать
  • Как преобразовать большое int в byte?

    @cicatrix
    было бы большой ошибкой думать
    int value = 1196;
    var bytes = BitConverter.GetBytes(value);
    Ответ написан
    Комментировать
  • Как выкинуть кастомное исключение?

    @cicatrix
    было бы большой ошибкой думать
    Проброс исключения - самое "дорогое" из всех возможных решений проблемы в плане производительности. К тому же, это и не исключение вовсе, а вполне штатная ситуация. Простая проверка в виде вызова bool CustomerExists будет выглядеть здесь гораздо уместнее. К тому же, эта проверка у вас уже производится.
    А так, да, класс любого исключения должен быть наследником System.Exception
    Ответ написан
    Комментировать
  • Чем веб-парсеры отличаются от реальных пользователей?

    @cicatrix
    было бы большой ошибкой думать
    При прочих равных пользователи в первую очередь отличаются частотой запросов. Парсер сходит по всем линкам за миллисекунды. Если владелец сайта задался целью усложнить парсеру работу, он сможет это сделать, анализируя частоту и типичность запросов.
    Ну и ловушку можно предусмотреть - невидимая в UI ссылка, например (а если парсер умный и определяет видимость элемента, то можно и "светло-серое на белом" сделать). Прошёл по ссылке - значит бот (или влезливый мамкин хацкер).
    Если пофантазировать, то можно и нейросетку приделать, которая бы, имея модель действий среднестатистического пользователя, определяла бы, насколько этот клиент не похож на человека.
    Ответ написан
    Комментировать
  • Можно ли создать в C# иерархический класс?

    @cicatrix
    было бы большой ошибкой думать
    А может с конца начать. Можете обрисовать ситуацию, когда это может понадобиться? Ну или хотя бы псевдокодом описать?
    Просто есть такое чувство, что либо я чего-то недопонимаю, либо подобный приём наружает с пяток различных паттернов, которых рекомендуется придерживаться.
    И уж совсем не вижу проблемы в том, что вложенный класс надо инициализировать.
    Ответ написан
  • Как исправить ошибку в коде на c#?

    @cicatrix
    было бы большой ошибкой думать
    Зайди в метод InitializeComponent(), который вызывается из конструктора формы, и там увидишь привязку несуществующего обработчика событий.
    Ответ написан