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

    @res2001
    Developer, ex-admin
    Наиболее толковая и подробная документация это помощь по командам, как ни странно.
    Каждая команда имеет встроенную справку вызывается она с помощью ключа /?, даже for, if, set имеют такие справки, и сам cmd /?
    Можно простым скриптом сгенерировать текстовые файлы с описанием большинства команд:
    FOR /F "usebackq tokens=1 eol= skip=1 delims= " %%a IN (`help^|findstr /B /V /C:" "`) DO help %%a >>%%a.txt

    Так же на rsdn.ru есть статья "Уроки батаники", там очень не плохое введение в тему.
    На forum.ru-board.com и forum.script-coding.com хорошие ветки по теме, там тусят "крутые перцы" в ботанике.
    Ответ написан
    1 комментарий
  • Обоснованно ли переносить Файловый сервер на NAS?

    @res2001
    Developer, ex-admin
    Переносить ради переноса не стоит.
    Если уж соберетесь переносить, то лучше не NAS, а SAN, отдайте том по iSCSI.
    Ответ написан
    Комментировать
  • Как создать хэш таблицу с помощью си?

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

    @res2001
    Developer, ex-admin
    Для винды для посылания комбинаций клавиш окну можно использовать утилиты типа autoit, nircmd.
    nircmd по проще.
    Ответ написан
  • Программирование на языке C (СИ). Как выполнить поставленную задачу, через конструкцию «цикл в цикле»?

    @res2001
    Developer, ex-admin
    Псевдокод:
    Сумма = 0
    Первый цикл { 
      вводите очередное число
      находим последнюю цифру
      внутренний цикл {
        ищем первую цифру
      } 
      Если первая и последняя цифры равны, то число прибавляем к сумме
    }

    Как только придумаете как найти первую цифру, так сразу появится и внутренний цикл.
    Ответ написан
    1 комментарий
  • Как написать указатель на двумерный массив?

    @res2001
    Developer, ex-admin
    В вашем случае достаточно:
    int *p;
    p = (int*)a;

    Или если с двойным указателем, то так:
    p = &a;
    Но дальше в printf у вас все равно будет ошибка.

    Двойной указатель обычно нужен для создания двумерных массивов типа "хребет". В случае обычного (плоского) массива, как у вас, хватает и обычного указателя, не зависимо от количества размерностей.
    Ответ написан
    4 комментария
  • Как в фильтре при выборке данных задать усреднение по дате (частота)?

    @res2001
    Developer, ex-admin
    Как-то так, имхо.
    select sum(temp), DTI from (
    SELECT temp, datediff(minute,DateTimeIn, 0)%5 as DTI FROM info_once 
    )
    group by DTI


    Протестировать сейчас не могу.
    Ответ написан
  • Какова механика запроса SQL?

    @res2001
    Developer, ex-admin
    f.id < flights.id - это условие позволяет выбрать все рейсы, которые были до текущего рейса.
    Тут надо учесть, что id - это скорее всего уникальное поле с автоинкрементом, поэтому у предыдущих рейсов id будет всегда меньше, чем у текущего.
    Ответ написан
    Комментировать
  • Как проверить наличие службы и если её нет - запустить батник?

    @res2001
    Developer, ex-admin
    Из cmd проверить состояние службы можно с помощью sc и проанализировать ее вывод.
    Либо можно с помощью tasklist вывести список запущенных процессов и найти нужный, если его нет, то и служба не работает.
    Запустить любой процесс в качестве службы можно с помощью srvany и instrvs. Эти утилиты входят в состав Microsoft’s Windows Server 2003 Resource Kit. Вполне работали на Вин7, дальше не в курсе.
    Ответ написан
    Комментировать
  • Что не так в реализации моего метода?

    @res2001
    Developer, ex-admin
    Вы же умеете пользоваться отладчиком. Он вам лучше все скажет, чем кто-нибудь тут.
    Предположительно выход за границу диапазона.
    Возможно ошибка не в этом участке кода, здесь она просто проявляется.
    Думаю, что при удалении элемента нужно декрементировать не только m_size, но и i.

    PS: Я бы рекомендовал при создании нового узла обнулять указатель на следующий элемент, тогда определить конец списка можно просто по нулевому указателю и везде перед переходом на следующий элемент проверять не пустой ли он.
    Заведите переменную для хранения предыдущего узла, тогда избавитесь от внутреннего цикла, а накладных расходов минимум.
    Ну и код я бы немного реструктурировал, а то два одинаковых if идущих друг за другом режут глаз.
    Комментарии, по большей части, "ни о чем".
    Ответ написан
    Комментировать
  • Как реализовать считывание строк из файла в массив строк?

    @res2001
    Developer, ex-admin
    На сколько я понял вы пытаетесь прочитать строку из файла и сохранить ее как элемент массива arr.
    Но делаете это не правильно.
    Ваша ошибка в том, что fscanf/fgets не выделяет память для хранения строки, она использует тот буфер, который вы ей предоставите. Но вы ничего не предоставляете.
    Вам нужно для каждого элемента arr выделить память под строку:
    arr[i] = (char*)malloc(sizeof(char) * BUFLEN);
    где BUFLEN - некоторая целочисленная константа, обозначающая максимальную длину строки.
    Тогда чтение из файла, как реализовано у вас пройдет.
    В конце память выделенную с помощью malloc нужно освободить с помощью вызова free для каждого элемента массива arr.
    И не забывайте обрабатывать ошибки выделения памяти и возвраты файловых операций.
    fscanf со спецификатором формата "%s" считывает не строку, а слово - в строке может быть много слов. Для чтения строки используйте fgets, либо читайте посимвольно fgetc.
    Когда заработает, потренируйтесь на файле, содержащем строку из более чем BUFLEN символов и попытайтесь найти корректный выход из этой ситуации.
    Ответ написан
    8 комментариев
  • Как сформировать блоки по 32бита из произвольного объема входных данных?

    @res2001
    Developer, ex-admin
    1) узнать размер файла, выделить буфер под размер файла и прочитать файл оптом. Но могут быть проблемы, если файл очень большой.

    2)64 бит - 8 байт
    32 бит - 4 байта
    Представлять можно целыми числами, например с помощью union схематично так:
    #include <inttypes.h>
    ...
    typedef union {
      uint64_t val8;
      uint32_t val4[2];
    } block;
    ...
    uint8_t * readdata; 
    // Выделяем память под массив байт readdata и читаем в него 8 байт из файла (опущено)
    ....
    
    block * b = (block*)readdata;
    // После этого в
    // b->val8 - 64 битовый блок
    // b->val4[0] и b->val4[1] - два 32 битовых блока
    Ответ написан
    2 комментария
  • Как подключиться к удаленному ПК через терминальный сервер по RDP в одну операцию (win)?

    @res2001
    Developer, ex-admin
    1. у mstsc есть параметры командной строки, в которых можно задавать адрес и порт сервера, к которому подключаетесь. Но на самом деле, нужно просто с помощью того же mstsc создать RDP файл с настройкой подключения, один раз сохранить пароль и дальше подключать просто двойным кликом по RDP файлу.
    mstsc /? - в помощь

    2.Вложенное подключение можно создать с помощью настройки в том же RDP файле на закладке Program - указать команду, которая будет выполнена при соединении с сервером, командой этой будет mstsc с соответствующими параметрами.
    С какой-то версии mstsc микрософт выпилил закладку Program из интерфейса, но возможность запуска стартовой команды все равно осталась - ее перенесли в политики.
    Ответ написан
  • Почему не запускается debug?

    @res2001
    Developer, ex-admin
    Видимо потому, что нет debug.exe в каталоге, указанном в переменной окружения PATH или в текущем каталоге.
    Ответ написан
  • Как записать функцию макрасом?

    @res2001
    Developer, ex-admin
    #define fun(v, h) sqrt((h.x*h.x) + (h.y*h.y) + (h.z*h.z))
    Ответ написан
  • Создать загрузочный раздел?

    @res2001
    Developer, ex-admin
    Какая винда? Как размечены оба диска (GPT/MBR)?
    У вас на втором диске сейчас нет загрузочного раздела. В зависимости от разметки диска загрузочный раздел может быть разным. В стать от sotvm по этому поводу написано.
    В общем вам нужно для начала вручную сделать загрузочный раздел на втором диске, а затем воспользоваться советами из статьи (при этом на первом диске загрузочный раздел лучше удалить, после удаления загрузочного раздела винда у вас грузиться не будет по старой схеме).
    Если покажется слишком сложно, то вытащите первый диск и переустановите винду.
    Ответ написан
    Комментировать
  • Как добавить компилятор Visual Studio C++ в powershell\cmd?

    @res2001
    Developer, ex-admin
    Со студией поставляется комплект командных сценариев, настраивающих окружение командной строки для работы компилятора. Достаточно командную строку запускать через эти сценарии. Ярлыки на эти сценарии находятся в меню Пуск в папке студии.
    Например у меня для VS2017 есть такие:
    x64 Native Tools Command Prompt for VS 2017
    x86 Native Tools Command Prompt for VS 2017
    Соответственно для 64битной и 32битной сборки приложений. В 2015 студии есть аналогичные, только название немного изменено.
    Запускайте ком.строку через этот сценарий и все будет собираться.
    Ответ написан
    2 комментария
  • Как компилировать проект на Boost.python?

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

    PS: год назад, то же делал модуль для питона, только на голом Си. Вполне успешно.
    Ответ написан
  • Как вытащить запрос в Batch?

    @res2001
    Developer, ex-admin
    @echo off
    set "filesrc=1.txt"
    set "filedst=filedst.txt"
    for /f "usebackq tokens=1,2,* delims=@:" %%a in ("%filesrc%") do (
    	1>>"%filedst%" echo.%%~a	%%~b	%%~c
    )

    Правда не ясно зачем, изменить формат что ли?
    Ну тогда пишите какой должен быть формат.
    В цикле в переменных:
    %%~a - имя пользователя (часть почтового адреса)
    %%~b - домен почтового адреса
    %%~c - пароль
    Если в файле источнике будут служебные символы, то наверняка появятся ошибки.
    К служебным символам относятся: &<>)(^%
    Ответ написан
    Комментировать
  • Кроссплатформенный VPN без белого IP. Аналоги Hamachi etc?

    @res2001
    Developer, ex-admin
    Купите любой VPS/VDS и поставьте там сервер OpenVPN.
    Или готовый ВПН хостинг.
    Нужен хотя бы 1 статический белый адрес для сервера.
    NAT - не проблема - порт можно пробросить.
    Ответ написан
    Комментировать