Задать вопрос
  • Почему считывается с файла только 1 слово, а не весь текст?

    @res2001
    Developer, ex-admin
    Не раскрыта тема о классе House. Не видя его трудно что-то сказать.

    Но могу предположить, что в House, например, поле address является std::stringом.
    А std::string хранит свою строку в динамической памяти и sizeof(std::string) в общем случае совсем не равен размеру хранящейся в нем строки. Записывая в файл sizeof(std::string) байт вы записываете грубо говоря только адрес памяти где лежит строка и размер строки, но не саму строку.
    Вам нужно делать нормальную сериализацию/десериализацию полей объекта House.
    Ответ написан
    4 комментария
  • Что возвращает return в С++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Зависит от кода функции и опций компилятора.

    Советую всем программистам на C++ хотябы почитать про ассемблер.
    Стек, регистры, вот это вот все. Тогда станет понятно, как работает процессор.

    Тогда станет понятно что "сам объект tmp" никак не вернуть. Это локальная переменная, лежащая на стеке в части, которая будет отброшена при выходе из функции. Отсюда вытекает, что вообще говоря, там должна быть копия.

    Но есть такая оптимизация, как RVO. В стандарте даже прописано, когда конкретно она гарантирована. Тогда копии не происходит. При этом компилятор вообще не создает локальной переменной. А вместо этого сразу же работает с тем местом, куда надо будет возвращать значение.

    Если код и включенные оптимизации позволяют это сделать - то копии не будет. Но в общем случае - будет копия.
    Ответ написан
    Комментировать
  • Можно ли в приложении создать кнопку выбора последнего выбранного файла?

    Adamos
    @Adamos
    Открыл файл - записал его путь в настройки приложения.
    Открыл приложение - прочитал настройки - получил путь к последнему открытому файлу и делай с ним что хочешь.
    Причем для этой логики некритичен ни язык, ни ОС, и WinAPI не нужно совершенно.
    Ответ написан
    Комментировать
  • Почему на одном из компьютеров в ZIP не верно отображаются имена файлов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    проверьте установки системы панель управления регион администрирование
    язык для не unicode программ
    Ответ написан
    1 комментарий
  • Как лучше организовать дубли?

    @res2001
    Developer, ex-admin
    Это называется дедубликацией. В Windows Server давно уже есть соответствующие родные службы, так что можете просто заменить Windows 10 на Windows Server :-)
    На сколько я знаю, есть сборки пакетов для дедубликации, которые работают на Windows 10. Собраны они умельцами из соответствующих пакетов Windows Server. Сам не пользовался, так что ничего по функционалу не скажу. Гуглите.

    PS: не пользуйтесь ccleaner
    Ответ написан
    Комментировать
  • Странное и неадекватное поведение смартфона?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Батарейка кирдык, менять надо.
    Ответ написан
    1 комментарий
  • Как распарсить такую строку?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Перебираем символы: находим запятую - делим; находим кавычки - игнорируем запятые до следующей кавычки.
    Ответ написан
    Комментировать
  • Как распарсить такую строку?

    Это CSV и уже есть готовые библиотеки, которые нормально обрабатывают кавычки.
    Буквально так и называется библиотека: Csv и ещё есть CsvHelper
    Вот пример, как использовать CsvHelper:
    #r "nuget:CsvHelper"
    
    using CsvHelper;
    var text = "123,текст,текст с пробелами,\"текст, еще и с запятыми\",\"еще текст, еще с запятыми\"";
    
    var parserOptions = new CsvHelper.CsvParserOptions { Delimiter = ',' };
    var readerOptions = new CsvHelper.CsvReaderOptions { HasHeaderRecord = false };
    
    using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(text)))
    using (var stringReader = new StreamReader(memoryStream))
    using (var csvParser = new CsvParser(stringReader, parserOptions))
    using (var csvReader = new CsvReader(csvParser, readerOptions))
    {
        while (csvReader.Read())
        {
            Console.WriteLine(csvReader.GetField(0));
            Console.WriteLine(csvReader.GetField(1));
            Console.WriteLine(csvReader.GetField(2));
            Console.WriteLine(csvReader.GetField(3));
            Console.WriteLine(csvReader.GetField(4));
        }
    }
    Ответ написан
    Комментировать
  • Равенство всех элементов в упорядоченном ассоциативном контейнере/динамическом массиве?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Самое быстрое решение - это написать свой контейнер, который будет складывать данные в обычный stl-ий контейнер, но при их изменении будет сравнивать их с заданным значением и поддерживать счетчик не равных заданному числу элементов (не нулевых в вашем примере).

    Тут все опрерации будут выполнятся за константое время. Быстрее никак. И расход памяти минимальный - один счетчик. Но придется много операторов методов реализовывать, если вы хотите эту вашу коллекцию использовать как обычные stl коллекции (итератор свой, всякие begin/end/size/operator[] etc).
    Ответ написан
    5 комментариев
  • C# и OutOfmemoryExtension - как перейти на полноценные 64х?

    Ну без кода сказать в чём конкретно проблема нельзя, но вот пара советов:

    1. Убедись что Target platform у тебя x64 (Но вообще, если у тебя dotnet core, то он и так и так не будет упираться в 4гб)
    2. Убедись, что где-то в недрах у тебя не выделяется массив более чем на int.MaxValue элементов (внутри словарей массив, если мне память не изменяет)
    3. Убедись, что это ошибка именно из рантайма приходит, а не выкинуто где-то явно
    4. Попробуй как-нибудь разделить свои данные, чтобы для их хранения не требовался непрерывный кусок памяти.
    5. Если ты используешь net framework, а не net core, то тебе нужно в конфиге явно указать, что ты хочешь создавать объекты более 2гб размером.
    https://docs.microsoft.com/en-us/dotnet/framework/...

    VS2022 и так x64, да и даже если бы была х32, как в 2019 - это бы не повлияло на само приложение.
    Ну и возьми dotMemory, чтобы продиагностировать проблемы в работе с памятью.
    Ответ написан
    7 комментариев
  • Как перевести радианы в градусы?

    Очевидно, что переводить в радианы нужно не результат операции, а параметр.
    Тоесть тут надо _dir, который в градусах, перевести в радианы
    Ответ написан
    2 комментария
  • Что такое KDE Wallet?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    kde password manager
    предлагает вам сохранить пароль от вифи, чтобы больше не вводить...
    Ответ написан
    6 комментариев
  • Почему не работает System.Text.Encoding? Ошибается на 1 символ?

    twobomb
    @twobomb
    Ну потому-что ваш генератор тупо генерирует рандомные числа от 0 до FFFF, а в UTF16 там есть определенные правила. Почитайте например в вики

    Я не вникал ну вики говорит что там есть диапазон для суррогатных пар тоесть символы которые кодируются двумя 16битными словами, тоесть 4 байтами. Крч как вариант или тупо добавить проверку в генератор чтобы если рандомное число входит в диапазон исключений D80016..DFFF16 то пропускать и генерировать другое. Или замарачиваться с этими парами, ну это будет сложнее.

    Принцип кодирования
    В UTF-16 символы кодируются двухбайтовыми словами с использованием всех возможных диапазонов значений (от 0 до FFFF16). При этом можно кодировать символы Unicode в диапазонах 000016..D7FF16 и E00016..FFFF16. Исключенный отсюда диапазон D80016..DFFF16 используется как раз для кодирования так называемых суррогатных пар — символов, которые кодируются двумя 16-битными словами.

    Символы Unicode до FFFF16 включительно (исключая диапазон для суррогатов) записываются как есть 16-битным словом.

    Символы же в диапазоне 1000016..10FFFF16 (больше 16 бит) кодируются по следующей схеме:

    Из кода символа вычитается 1000016. В результате получится значение от нуля до FFFFF16, которое помещается в разрядную сетку 20 бит.
    Старшие 10 бит (число в диапазоне 000016..03FF16) суммируются с D80016, и результат идёт в ведущее (первое) слово, которое входит в диапазон D80016..DBFF16.
    Младшие 10 бит (тоже число в диапазоне 000016..03FF16) суммируются с DC0016, и результат идёт в последующее (второе) слово, которое входит в диапазон DC0016..DFFF16.
    Ответ написан
    Комментировать
  • Как запустить задачу меньше чем за 1 мс?

    @oleg_ods
    Операционные системы на которых работает C# не поддерживают Real Time взаимодействие.

    Методы Thread.Sleep(10)/Task.Delay(10) означают что задержка будет как минимум(!) 10 мс, но не дают никакой гарантии что задержка будет ровно 10 мс. То есть это значит что 10 мс поток будет бездействовать, а потом встанет в очередь за получением процессорного времени.

    Как написали выше Вам нужно смотреть в сторону RTOS и более низкоуровневых языков программирования. На настольных ОС такие задачи не решаются.
    Ответ написан
    Комментировать
  • Как ограничить копирование данных из сетевых папок, локального ПК, на флешки и внешние ресурсы?

    @TheBigBear
    СтарОдмины мы
    Много лет пользовали Стахановца
    В нем можно запретить запись на внешние носители, отслеживает все копирования-удаления - даже к себе их копирует перед удалением. Можно запретить прикрепление файлов в вэб почте. Отлична развита система отслеживания подозрительных действий, слова "ловушки".
    Правда (не знаю как в новых версиях) в нашей плохо работал "клавиатурный почерк" и распознавание речи
    Два раза ловили инсайдеров конкурентов, раз сотрудницу, сливающую данные в налоговую.
    Раз помог найти украденный ноутбук
    Сколько раз наказывали за безделье на работе - не счесть (соцсети, ютуб)
    4 года назад в компании сменился владелец.
    Приказал убрать стахановца, поменял мелкое руководство, изменил отношения в коллективе.
    Запретил штрафы - если сотрудник сделал текущую на сегодня работу - пусть делает что хочет.
    Мы вспомнили что такое "премия" за хорошую работу.
    Раз собрал сотрудников и сообщил кто конкретно в коллективе на нас "стучит" и предложил вне конфликты разбирать публично
    Вот не поверите, но на работу ходим с удовольствием
    Ответ написан
    1 комментарий
  • Как ограничить копирование данных из сетевых папок, локального ПК, на флешки и внешние ресурсы?

    CityCat4
    @CityCat4 Куратор тега Информационная безопасность
    Дома с переломом ноги
    Стахановец.

    Правда, насчет "шифровал файлы" - такого там конечно же нет. Вещь крайне обоюдострая - забыл пароль - и все. Да, еще - чисто техническими средствами это не реализовать - только комплекс из технических и административных мер.

    Стахановец - это Система Мониторинга Пользователей и, соответственно, руководство при приеме на работу обязано предупреждать, что таковой ведется. Желательно в письменном виде под роспись. Мониторится все, в том числе ввод с клавиатуры, делаются снимки экранов (помогало неоднократно против людей, которые продвинутые или просто "особо умные").

    Но коненчно же не бесплатно. И даже не дешево.
    Ответ написан
    2 комментария
  • Как автоматизировать установку программного обеспечения и настройку windows машины?

    3r1k
    @3r1k
    the quieter you become, the more you hear
    Может проще сделать виртуалку, раскатать там всё ПО, сделать бэкап и каждый раз восстанавливать, как новую...
    Ответ написан
    8 комментариев
  • Как автоматизировать установку программного обеспечения и настройку windows машины?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Установили Windows, установили драйвера и все нужное ПО - сделали образ диска. Каждые 4 дня - просто восстанавливать ОС из образа.
    Ответ написан
    Комментировать
  • Как найти culauncher.exe?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Не находит
    WHERE /R C:\ culauncher.exe
    Первая ссылка в поиске. Обновления это.
    Я знаю что это обновления.
    Настройте получение обновления на минимальное использование указанного вами канала.
    Ответ написан
    1 комментарий
  • Какие есть решения для брудфорса учетных записей windows в локальной сети?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Задача решается наоборот:
    1. Политикой запрещаем "ненадежные" пароли.
    2. Всем юзерам ставим галку "Принудительно сменить пароль". И заодно вторую галку "Менять пароль раз в 30 (например) дней."

    Объяснение: нет большого смысла в том, чтобы брутфорсить пароли и составлять списки пользователей, потому что ваша реальная цель состоит не в том, чтобы узнать, у кого стоит какой пароль. Ваша цель - избавиться от плохих паролей.
    Ответ написан
    Комментировать