• Как удалить первые 4 символа в имени файла в Windows?

    @res2001
    Developer, ex-admin
    В винде то же можно. Есть операция замены и взятия подстроки в команде set . Смотри set /?
    Цикл по файлам, в каждом имени удаляем нужные символы, затем ren с новым именем.
    Ответ написан
    Комментировать
  • Массив не передается полностью в функцию потока. Объясните в чем проблема?

    @res2001
    Developer, ex-admin
    Выход за границу массива тут:
    for(int i=0;i<s->m;i++){
    ...
       s->secondSortedArray[i]=num;
    }

    У вас количество элементов в обоих массивах 4, а m вы инициализируете 5. При последнем присваивании secondSortedArray происходит выход за границу массива, а т.к. после secondSortedArray в структуре идет m, то m у вас заменяется последним рандомным значением.
    В firstSortedArray то же есть выход за границу массива, но это не носит деструктивных последствий.
    Подобные вещи часто приводят к краху программы. Вы могли бы это отловить в отладчике. Пользуйтесь им. Отладчик - друг программиста! :-)
    Ответ написан
    4 комментария
  • Можно ли вывести список enum?

    @res2001
    Developer, ex-admin
    Можно с помощью такого Сишного подхода:
    // .h файл
    #define ENUM_MAP(XX) \
      XX(0, laborer, Laborer help msg) \
      XX(1, secretary, Secretary help msg)\
      XX(2, manager, Manager help msg)\
      XX(3, accountant, Accountant help msg)\
      XX(4, executive, Executive help msg)\
      XX(5, researcher, Resercher help msg)
    
    enum etype
    {
    #define XX(num, name, string) name = num,
      ENUM_MAP(XX)
    #undef XX
     };
    
    // .cpp файл, включающий предыдущий .h
    #define XX(num, name, string) #string,
    const char * enum_msg[] = [
      ENUM_MAP(XX)
    ]
    #undef XX

    Такими образом имеем массив enum_msg со строками из третьего параметра XX в ENUM_MAP.
    Набор параметров в XX можно варьировать как угодно.
    Подобная техника применяется, например, тут.
    Ответ написан
    Комментировать
  • В чем ошибка (работа с памятью, деструкторы)?

    @res2001
    Developer, ex-admin
    delete[] _coords;
    В таком виде в Dist создаются копии объектов с помощью конструктора копирования по умолчанию, т.е. просто побайтовое копирование. После завершения Dist память под coords в копиях освобождается. Когда завершается main() та же самая память будет освобождена еще раз, что приведет к ошибке.
    Поэтому в Dist передавайте ссылки!
    Ответ написан
    Комментировать
  • Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    @res2001
    Developer, ex-admin
    Виноваты накладные расходы.
    В traditional_way они минимальны.
    Замените лямбды вычислением промежуточного массива содержащего abs(a-x) в остальных случаях и получите дополнительный прирост производительности.
    Ответ написан
  • Кто может помочь с кодом visual?

    @res2001
    Developer, ex-admin
    Возможно в CRC.h (или где-то еще) объявлены функции возвращающими int, а в реализации они возвращают DWORD.
    Ответ написан
    Комментировать
  • Почему нужно делать сложные пароли Windows?

    @res2001
    Developer, ex-admin
    Для подбора пароля не обязательно каждый раз логиниться - можно скопировать базу паролей и подбирать сколько влезет без боязни быть заблокированным.

    Что бы вы не предпринимали 100% гарантии от взлома не будет никогда.
    Все подобные мероприятия направлены на усложнение жизни потенциальному взломщику. Они все не обязательны, но если грамотно их использовать можно получить достаточно защищенную сеть достаточно небольшими усилиями.
    Одно из основных мероприятий - отобрать у пользователей администраторские права в принципе. Без этого - все остальное - пустая трата времени.
    Ответ написан
    Комментировать
  • Как сделать грамотную декомпозицию ООП?

    @res2001
    Developer, ex-admin
    Стек, конечно, можно делать и на массиве, но обычно его делают на списке.
    Для самого стека обычно хватает 1-2 структур/классов: Класс стека и класс узла стека.
    Для остальных можете придумать произвольную простейшую иерархию наследования, что бы объекты этих классов можно было укладывать в стек по ссылке/указателю на базовый класс.
    Модули это файлы:
    1. основной код - сюда запихнете main(), возможно какие-нибудь вспомогательные функции.
    2. и 3. стандартное разбиение С++ классов на заголовок (.h) и реализацию (.cpp).
    Т.к. классов не менее 5, то и заголовков и реализаций по уму делать на каждый класс, но в вашем случае можно все сложить в 2 файла. Хотя я бы сам стек выделил в отдельные "модули".
    Ответ написан
  • Черный экран с мышкой (ошибка winlogon.exe), что такое и как лечить?

    @res2001
    Developer, ex-admin
    Вообще с битой памятью работать нельзя. Вам очень сильно повезло что вы какое-то время просидели на битой оперативке.
    Похоже вы угробили винду из-за битой памяти.
    Для начала меняйте оперативку на заведомо рабочую, потом пробуйте восстановиться стандартными процедурами.
    Не поможет - переустанавливайте винду.
    Ответ написан
    Комментировать
  • SELECT * FROM где таблица like 'i'?

    @res2001
    Developer, ex-admin
    SQL не ограничивается 4 операторами (select, insert, update, delete). Обычно разработчики СУБД добавляют в SQL еще и процедурное расширение, благодаря чему становится возможным писать скрипты со сложной логикой, при этом работать из скрипта с БД. Плохо то, что эти процедурные расширения у каждой СУБД свои и там нет никакой совместимости.
    Что бы выполнить вашу задачу нужно написать скрипт в котором вы первым запросом получаете имя таблицы в переменную, потом собираете нужный select с нужным именем таблицы и исполняете его.
    Исполнять динамически сгенерированный запрос придется с помощью EXECUTE.
    Скрипт можно оформить в хранимую процедуру, но можно выполнять и сам по себе, если это разовая задача.
    Ответ написан
    Комментировать
  • Какую подобрать операционную систему для сетевой архитектуры офиса?

    @res2001
    Developer, ex-admin
    Смотрите на то ПО которое будет крутится как на сервере так и на клиентах. Часто выбора нет совсем (например используемое ПО только под винду).
    На сервере возможна виртуализация, т.к. на 15 компов у вас, возможно, достаточно не плохой сервер. Но это, конечно, зависит от нагрузки, которую будет тянуть сервер. В качестве гипервизора можете выбрать линукс+kvm|xen|.../ESXi/MS Hyper-V. В случае виртуализации лучше не совмещать на хосте роль гипервизора с чем-то еще - чем-то еще пусть занимаются виртуалки.

    Если используемое ПО позволяет выбор ОС, тогда включайте другие критерии отбора: умения работать с ОС как админов так и юзеров (хотя юзера обычно с ОС не работают - они работают с приложениями), цена, и т.п.
    Ответ написан
  • Один рабочий стол на двух пользователей Windows 10 1809?

    @res2001
    Developer, ex-admin
    Последнее время участились вопросы с похожей тематикой.
    Поэтому ниже краткий курс на тему установки софта.

    Сейчас многие приложения научились ставиться не в Program Files, а в профиль пользователя.
    При этом, если софт ставиться в Program Files, то ему требуется повышение привилегий, если в профиль пользователя - то повышение привилегий не требуется.
    Самые честные в процессе установки спрашивают "Будем ставить для всех или только для себя любимого?". Другие запросто могут поставиться в варианте "только для себя" не спрашивая пользователя ни о чем.

    Как должно быть понятно вариант "для всех" - это установка в Program Files.
    Есть некоторые уникумы, которые устанавливают себя в варианте "для всех" в каталог %SystemDrive%\ProgramData и еще небольшое количество софта, которые "по умолчанию" имеют свое собственное размещение типа "c:\program folder". Эти варианты установки то же требуют повышения привилегий.
    Но не только это - ярлыки на софт в меню пуск размещаются в "общем меню" ("C:\ProgramData\Start Menu"), ярлыки, размещаемые на рабочем столе, размещаются на "общем рабочем столе" (C:\Users\Public\Desktop\), глобальные настройки программы установщик записывает в реестр в ветку HKLM.
    Для всех этих действий нужны повышенные привилегии.

    Установка "только для себя" меняет вышеперечисленные места размещения:
    каталог установки: %USERPROFILE%\AppData
    Ярлыки в меню пуск: "%USERPROFILE%\Start Menu"
    Ярлыки на рабочем столе: "%USERPROFILE%\Desktop"
    Настройки программы: ветка реестра HKCU
    Во все эти размещения текущий пользователь имеет доступ без повышения привилегий.
    Ответ написан
    1 комментарий
  • Можно ли через стандартный UEFI-загрузчик Microsoft загружать другие *.efi-файлы?

    @res2001
    Developer, ex-admin
    efi файлы загружает не загрузчик микрософт, а UEFI BIOS, поэтому ответ - можно.
    Винда создает стандартный загрузочный EFI раздел и размещает там свой загрузчик, вы можете разместить там что-то свое.
    Проще всего закинуть туда какой-нибудь универсальный загрузчик и через него грузить все что потребуется.
    Ответ написан
    1 комментарий
  • При запуске программы выдает ошибку в DLL. Как исправить?

    @res2001
    Developer, ex-admin
    inet_pton - появилась вместе с IPv6. В XP вполне вероятно ее нет. Возможно есть IPv6 для ХР и там будет более новая версия винсока.
    Ответ написан
    Комментировать
  • Оцените код. Как можно заменить goto?

    @res2001
    Developer, ex-admin
    Почитайте что-нибудь о структурном программировании.
    Что бы лучше понять методы структурного программирования, просто запретите себе использовать goto. Вы быстро с ним освоитесь, когда будете пытаться придумать способ обойтись без goto.
    Ответ написан
    Комментировать
  • Как заставить систему видеть путь в батнике?

    @res2001
    Developer, ex-admin
    У вас в пути русские буквы.
    По умолчанию кодировка в cmd cp866, а вы батник скорее всего сохранили в кодировке cp1251 (или того хуже в UTF8), поэтому и русские буквы у вас стали кракозябрами и такой путь найтись не может.

    Либо добавьте перед вашей командой в батнике команду
    chcp 1251
    Либо сохраните батник в кодировке cp866 любы доступным средством, только убедитесь, что русские буквы правильно конвертировались.
    Ответ написан
    7 комментариев
  • Почему Python установился в \Appdata\Locals\Programs\ и как его безболезненно переместить?

    @res2001
    Developer, ex-admin
    1.Потому что при установке вы выбрали "Установить только для меня". Сейчас многие установщики освоили этот скил, это как раз и означает - установку в профиль пользователя. Установка "Для всех" - в Program Files (или возможно в ProgramData) при этом установщик запросит повышение привилегий (если включен UAC).
    2.Скорее нет. Про 260 символов - у вас устаревшая информация. Сейчас в винде нет этого ограничения. Многие программы "по привычке" встраивают это ограничение в собственный код сами (правда микрософт им в этом помогает). На сколько я знаю, питон этим не страдает.
    3.Я бы снес и переустановил. Но вообще, по моему питон в системе кроме PATH нигде не прописывается, так что можно попробовать.
    Ответ написан
    Комментировать
  • Какие возможные варианты подписи документов онлайн, ЭЦП пользователя, по ГОСТ Р 34.10-2012?

    @res2001
    Developer, ex-admin
    Если вам уже разрабы крипто-библиотеки сказали, что есть ограничения на размер файла, то почему вы думаете, что тут скажут что-то другое?

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

    @res2001
    Developer, ex-admin
    Посчитайте хэши файлов любым способом, после каждой промежуточной операции проверяйте хэши.
    Ответ написан
    Комментировать
  • OpenVPN. Почему клиент выдают ошибку подключения?

    @res2001
    Developer, ex-admin
    Я так понял у вас клиент на андроиде?
    Сертификаты нужно указывать так:
    <ca>
    # script-security 2
    # up /etc/openvpn/update-resolv-conf
    # down /etc/openvpn/update-resolv-conf
    -------BEGIN CERTIFICATE-----
    ....
    -------END CERTIFICATE-----
    </ca>

    Аналогично и для других опций, содержащих ссылки на файлы ключей (ca, cert, key).
    На сколько вижу у вас не хватает открывающего тега - . Это типичные xml теги - должен быть начальный тег и конечный.
    Ответ написан
    5 комментариев