Ответы пользователя по тегу C#
  • Как я могу превратить код в изображение?

    Base64 всегда кодирует исходное сообщение в сообщение длиной, кратной 4, дополняя знаками "=".
    Пример на языке Ruby, в режиме интерпретатора в командной строке:
    irb(main):020:0> Base64.strict_encode64 'a'
    => "YQ=="
    irb(main):021:0> Base64.strict_encode64 'ab'
    => "YWI="
    irb(main):022:0> Base64.strict_encode64 'abc'
    => "YWJj"
    irb(main):023:0> Base64.strict_encode64 'abcd'
    => "YWJjZA=="
    irb(main):024:0> Base64.strict_encode64 'abcde'
    => "YWJjZGU="
    irb(main):025:0> Base64.strict_encode64 'abcdef'
    => "YWJjZGVm"

    Изображение, закодированное с Base64, раскодируется при помощи буфера, скажем, 16КБ.
    В этот буфер нужно поместить данные размером, кратным 4 (при этом, храня истинный размер в отдельной переменной). Декодировал буфер - записывай результат куда нужно (будет содержать бинарные данные изображения) - приступай к чтению следующего куска, и так до конца "простыни".
    Так код не будет пожирать много памяти и будет обрабатывать данные поочередно.
    Ответ написан
    Комментировать
  • Возможно ли создать CRM на C#?

    Да. Возможно.
    Ответ написан
    Комментировать
  • Использовать генератор компиляторов или писать самому(компилятор)?

    Есть такой генератор компиляторов:
    Coco/R - www.ssw.uni-linz.ac.at/Coco
    Ответ написан
    Комментировать
  • Как преобразовать голосовые сообщения в текстовые в Telegram?

    Поиск: speech to text recognition api Russian
    Ответ написан
    Комментировать
  • Сигнатурный анализ c#?

    Открывать файлы на чтение нужно в бинарном режиме. Думаю, где-то чтение блока размером 32 байта должно быть достаточно для сопоставления с известной сигнатурой.
    Перед анализом файлов сначала переведи шестнадцатеричную сигнатуру в массив байтов A.
    Полученный с анализируемого файла блок B сравнивай побайтно с массивом A, не превышая размера массива A.
    Ответ написан
    Комментировать
  • Как сделать сохранение web-страницы на C#?

    Помимо предложенного Кандрашкин Алексей варианта, стоит обратить внимание на wkhtmltopdf/image. То есть это можут быть хорошо если нужно создать preview ресурса.
    Ответ написан
    Комментировать
  • Какой самый простой способ размещения C#.NET программы на сервере AWS?

    Адаптируй свою программу под стек .Net Core и тогда сможешь воспользоваться AWS Lambda. Это такой сервис для короткоживущих программ.
    Цены + https://aws.amazon.com/ru/cloudwatch/pricing/
    Scheduled Tasks in AWS: Introducing “Events”
    Lambda as Cron: Scheduling Invocations in AWS Lambda
    Tutorial: Schedule Lambda Functions Using CloudWat...
    Ответ написан
    Комментировать
  • Какой стек технологий выбрать для приложения в трее под разные настольные ОС?

    Ещё есть Lazarus (Delphi-like)
    Ответ написан
    Комментировать
  • Как перевести код с Matlab на C#?

    Не думаю, что это хорошая идея. С трансляцией кода обычно ничего хорошего не выходит.

    Преимущество использования MatLab состоит в векторизации вычислений. Без них код выполняется значительно медленнее. Судя по куску кода, он был написан будто на императивном языке. Если всё написано в таком духе, то, возможно, должно быть проще вручную класс за классом перевести.

    Но на всякий случай дам ссылочку: MATLAB Runtime Web Server
    Ответ написан
    Комментировать
  • Как реализовать умное сравнение строк?

    Мне пришёл в голову следующий примитивный алгоритм:
    1. предобработка: переводим в строке заглавные символы в строчные ("Гайка" -> "гайка")
    2. разбиваем строку на токены/слова, разделяемые любым количеством пробелов ("ббб ааа ввв" -> ["ббб", "ааа", "ввв"])
    3. полученный массив слов сортируем лексикографически (["ааа", "ббб", "ввв"])
    4. для последующего сравнения соединим обратно в строку (["ааа", "ббб", "ввв"] -> "ааа ббб ввв")
    5. полученные "нормализованные" строки сравниваем при помощи расстояния Левенштейна

    Согласно этому алгоритму из строк "Автоматический выключатель KDJF39484" и "Выключатель автоматический KDJF39484" на выходе получится одинаковая строка "kdjf39484 автоматический выключатель".
    Таким образом, расстояние Левенштейна между ними будет равно нулю.

    Для строк "гайка СБВ-4В ГОСТ.83", "Гайка СБВ-4ВГОСТ.83" результат хуже ожидаемого из-за того что отсортированы слова "СБВ-4В ГОСТ.83" как "гост.83 сбв-4в". Так получилось из-за того что слитно были написаны каталоговый номер и название стандарта.
    Для решения данной проблемы я бы получил из БД репрезентативную выборку всех возможных вариантов наименований, в которых фигурирует "ГОСТ" (без разницы заглавными или строчными) и тогда составил бы правила для отделения от других слов через пробел при помощи регулярных выражений или другими способами. Аналогично в случае с другими названиями стандартов (ISO, ...).

    Пример на языке Ruby:
    https://gist.github.com/romiras/386e3694a59949f6be...
    simple_fuzzy_match(
      ' Автоматический выключатель KDJF39484  ',
      'Выключатель автоматический  KDJF39484'
    )
    выдаёт разницу 0 для "нормализованных" строк, следовательно, они идентичны.
    Ответ написан
  • Как получить АЧХ звукового файла?

    "Прямо с микрофона" - это не совсем так. Как отметил в коментариях nehrung, можно анализировать спектрограмму какого-то временного диапазона (замера). То есть можно создать спетрограмму на основе данных в скользящем окне-буфере, получаемых с потока источника.

    Поиск "FFT" по проекту NAudio
    NAudioWpfDemo
    Да и на странице проекта https://naudio.codeplex.com/ первые две картинки демо-программ содержат спектрограмму.
    Ответ написан
    Комментировать
  • Как создать базу данных из текстового файла C#?

    При помощи строки подключения OleDbConnection устанавливается соединение с некой БД. В твоём случае это текстовый файл. В текстовый файл данные пишутся так, что колонки имеют разделитель в виде табуляции, запятой, точки с запятой или других знаков ASCII. Такие файлы условно называются CSV.

    DataSet - это набор данных (так переводится с англ.), получаемый и БД при помощи SELECT.
    Это все строки, считанные с текстового файла, распределённые каждые по своим колонкам. В программе с графическим интерфейсом эти данные обычно проецируются построчно (строка=запись) на какой-то элемент графического интерфейса для отображения на экране.
    Пользователь же, работая с интерфейсом, активирует команду для занесения новой записи, каждую из которых нужно сохранить в БД при помощи INSERT.
    Обновлять ячейки, скажем записи №2, нужно посредством UPDATE ... WHERE id=2.
    Ответ написан
    Комментировать
  • Какая бд лучше подойдёт для реализации очереди?

    А можно не городить огород, а использовать ZeroMQ/RabbitMQ/Beanstalkd/...
    или, возможно, обойтись без очередей.
    Ответ написан
    Комментировать
  • Почему в этом коде математический расчет выйдет некорректно напр при n = 301?

    Вводимое число записывается по десятичной системе счисления.
    08315d27b37abac11a88fdc5c51b915104176a69
    Чтобы новое число было в обратном порядке, нужно не просто складывать, а ещё умножать на основание в степени с учётом позиции в числе. Таким образом, нужна ещё дополнительная переменная-счётчик для позиции.
    Ответ написан
    Комментировать
  • Как сделать поиск по множеству?

    Без циклов - это значит библиотечными средствами?
    stackoverflow.com/a/10366607
    Алгоритмы: Ахо-Корасик, КМП.
    Ответ написан
    Комментировать
  • Как построить гистограмму?

    Найти максимальное и минимальное значения, рассчитать относительные значения в процентах, выводить каждый прямоугольник, умножая на процент экранную высоту прямоугольника, принятого за 100%.
    Если в консоли, то можно выводить символом "\u2592" или звёздочками, заполняя ими высоту каждого прямоугольника. Гистограмму можно строить горизонтально или вертикально.
    Ответ написан
    Комментировать
  • Как применить CuneiForm в проекте на c#?

    Насколько я понял, CuneiForm более не разрабатывается и имеет лишь консольную программу для запуска в Linux. Насчёт DLL не нашёл информации.
    Поскольку tesseract поддерживается, имеет и библиотеку и консольную программу, то стоит обратить внимание на неё. tesseract-ocr.googlecode.com/git/vs2008/doc/progra...
    Ответ написан
    Комментировать
  • Какой язык программирования наиболее удобен для приложения с локальной базой данных?

    Схема создания приложений для Андроида такова:
    flow.jpg
    Создавать байткод в .class файлах могут не только компиляторы языка Java, но и компиляторы большого множества других языков. Байткод Java исполняется в среде исполнения Java VM и её аналоге, Dalvik VM:
    dalvik.jpg
    На портативных устройствах Android установлен runtime Dalvik VM, а на настольных (сегодня это уже размытое понятие) - полноценная Java SE Runtime Environment.
    Одно дело - скомпилировать байткод в файл, а другое дело - исполнять инструкции байткода из файла.
    Так, Java SE Runtime Environment использует оконную систему низлежащей ОС. В Windows - Windows API, а Linux - X server API. Несмотря на разницу в оконных системах, у них много общего.
    А вот на портативных устройствах экраны другие и вместо мыши - касание экрана или перо. Причём, из-за того, что размеры экрана малы, то построение графического интерфейса для настольных и портативных устройств сильно отличается.
    Тенденция последних лет - это так называемый "адаптивный дизайн", когда графический интерфейс подстраивается под особенности экрана: автоматически изменяются размеры графических элементов, перескакивают на следущую строку и т.д.

    Для написания настольных приложений Delphi подходит.
    Для Андроида же можно создавать программы на Free Pascal в связке с laz4android.
    Ответ написан
    Комментировать
  • Как организовать безопасную регистрацию и авторизацию на простом HTTP сервере (C#)?

    Чтобы безопасно, то только через HTTPS соединение.
    В двух словах не объяснить - почитай руководства и слайды на тему аутентификации, сессий.
    После того как человек идентифицирован, программа должна определять какие права он имеет в системе: что можно, а что нельзя.
    Работа с сертификатами - это, по-большей части, работа сисадминская.
    На рабочей машине достаточно работать с самоподписанным сертификатом. Главное, чтобы веб-сервер поддерживал HTTPS.
    Ответ написан
    Комментировать
  • Парсинг погоды - C#?

    Как делается разбор XML? Библиотеками... Читаем документацию...
    Ответ написан
    Комментировать