• Как разделить xml файл спомощью bat/cmd?

    @res2001
    Мой ответ не верный. В батниках вполне реально работать с xml, что доказал в своем ответе wisgest
  • Как разделить xml файл спомощью bat/cmd?

    @res2001
    Работает!

    Кстати, в последнем echo явно не хватает закрывающей скобки. Но оно и так работает... Странно
    Добавил скобку перед перенаправлением вывода - работает, но не правильно.
    Привел к такому виду: (echo.%%L)>>!i!.xml. Работает правильно и все скобки на месте.

    Поэкспериментировал еще со служебными символами, содержащимися в переменных.
    Оказалось, что вполне можно работать с ними, только надо везде использовать восклицательные знаки для обращения к переменным. Тогда они не раскрываются в командной строке, это происходит где-то потом. Соответственно ошибок не возникает даже вне тела цикла. Ну и конечно нужно включать setlocal enabledelayedexpansion.
    Что характерно, переменные цикла раскрываются в коммандную строку, но это не генерирует ошибки. Об этом вы писали в нашей прошлой дискуссии по этому поводу. Видимо этот момент как-то особенно обрабатывается в cmd.

    Жаль, что не знал обо всем этом лет 10 назад :)
    Свою позицию по работе со служебными символами, содержащимися в переменных, в батниках окончательно меняю.
    Мой ответ не правильный.
  • Для чего нужен возврат значения по ссылке?

    @res2001
    Владимир Коршунов, int& b = func(a);
    b - ссылка.
    Ссылка это не указатель!
    Если копнуть в ассемблер, то ссылки - это те же указатели (т.к. ни каких ссылок в ассемблере нет), но на уровне С++ ссылка это не указатель.

    Используют ссылки и указатели для одного и того же, но, как было верно замечено, ссылки почти всегда указывают на конкретный объект, тогда как указатели запросто могут иметь произвольное значение, не указывающее на объект, или nullptr.
    Ссылка может быть битой в случае многопоточного приложения, когда один поток получает ссылку на существующий объект, а второй поток потом этот объект уничтожает.

    Если взять адрес от ссылки, то получите адрес объекта. Если же взять адрес от указателя, получите адрес указателя, а не объекта на который он указывает.

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

    https://ideone.com/jQK0u1
  • В чем ошибка в написанном коде, в 5 строке?

    @res2001
    pfemidi, Сори, ошибся. Сообщение, конечно, предназначено автору. Исправлюсь.
  • Почему DNS запись на mikrotik не видит узел?

    @res2001
    ViktorGuerro, В ДНСе А записи всегда находятся в какой-то зоне (домене). Если у вас правильно указан ДНС сервер на клиентах, то просто исопльзуйте полное доменное имя, т.е. base.<имя домена/зоны>

    Если сильно хочется использовать именно короткое имя, то домен нужно прописать в настройках domain suffix. Эта настройка в винде есть где-то в глубине сетевых настроек. В таком случае винда сама будет подставлять доменный суффикс к именам.
  • В чем ошибка в написанном коде, в 5 строке?

    @res2001
    mercower26,
    а вывод идёт ну явно в UTF-8

    Видимо исходники написаны в UTF8. Сам компилятор ничего не перекодирует - в какой кодировке у вас написаны строковые литералы, то и выводится в консоль. Вывод будет правильный, только если кодировки консоли и исходников совпадают, либо если вы в коде будете перекодировать текст перед выводом в консоль.

    В русской винде для консоли есть несколько вариантов кодовых страниц, причем по умолчанию используется внезапно CP866. Кодировку в консоли можно в любой момент изменить консольной командой (chcp /?).
  • В чем смысл определения const int &ref=1;?

    @res2001
    Попробуйте собрать код, содержащий такое.
    Собралось?
    У меня не собралось.
    А вот такое
    const int &ref = 1;
    // или
    int &&ref = 1;

    собирается.
  • Как найти родителя заданного элемента в бинарном дереве?

    @res2001
    ColdHandGuy, Проверку на NULL указателей на потомков надо делать до любого обращения по этим указателям, иначе эта проверка не имеет смысла. Напомню, если вы обратитесь по не действительному указателю или указателю содержащему NULL ваша программа будет аварийно остановлена.
    if((root->left_child != NULL && root->left_child->data == x) || (root->right_child != NULL && root->right_child->data == x))
    ...
    if(root->left_child != NULL && root->left_child->data < x)

    Работает только если искать потомки корня

    Если не считать не корректной проверки на NULL, то все остальное выглядит нормально, по идее должна искать и глубже.
    Дерево у вас правильно сформировано? Перед поиском выведите дерево на экран. Можете сюда его выложить.
  • Как реализовать дерево на основе связного списка?

    @res2001
    Axretit, чтоб был просто конвертер вам нужно дерево, чтоб из него переносить элементы в список.
    Да, смысла в подобном дереве не много, но в качестве учебной - вполне не плохая задача.
    В целом подход такой же как в дереве на основе массива, нужен готовый список из минимального количества элементов, каждый элемент должен содержать признак пустой он или нет, получение элемента по индексу через обход элементов с начала. При разрастании дерева нужно добавлять сразу такое количество элементов, чтоб влазил весь следующий уровень дерева.
    Кстати, какой ЯП планируете использовать?
  • Как реализовать дерево на основе связного списка?

    @res2001
    Axretit, Можете использовать последовательный список так же как массив в комментарии Alexandroppolus https://qna.habr.com/q/1098806#clarification_1406260
    Но, конечно, работать будет мягко говоря не быстро, т.к. список не поддерживает индексацию, поэтому придется каждый раз обходить список для достижения нужного узла.
    Если это в учебных целях, то почему бы и нет, раз препод хочет.
  • Ошибка при загрузке attempted_write_to_readonly_memory?

    @res2001
    В интернетах по этой ошибке пишут следующие действия:
    1. Сделайте тест памяти.
    2. Обновите БИОС.
    3. Обновите драйвера.
  • Как подключить htmlcxx в проект C++?

    @res2001
    rastr,
    unresolved symbol

    Какие конкретно символы не найдены? Возможно у библиотеки есть свои зависимости, а может это зависимости вашего кода.
  • Почему не выводится последнее значение?

    @res2001
    Денис Фатеев,
    что надо сделать

    Просветите нас, как вы завершаете программу?
    Т.к. если будет eof в stdin, то должен сработать последний cout и вывести результат последнего подсчета.
    Видимо вы завершаете программу с помощью Ctrl+C, а это аварийно прерывает выполнение на текущей операции, а вы подобные исключительные ситуации никак не обрабатываете.
    Выхода 3:
    1. Завершать выполнение, используя ввод EOF: в винде Ctrl+Z, в никсах Ctrl+D
    2. Предусмотреть корректное завершение программы с помощью ввода какого-то значения, а так же, конечно, при достижении eof или ошибки cin.
    3. обрабатывать Ctrl+C. По моему, try/catch не ловит Ctrl+C, но могу ошибаться. В винде можно поставить собственный обработчик на подобное прерывание (с помощью Console API), а в никсах надо ловить соответствующие сигналы (POSIX API).
  • Почему arr и &arr отображаются одинаково?

    @res2001
    Артём,
    а сам же поинтер где-то должен хранится

    Вот как раз в этом и разница. Массив это почти как настоящий указатель, только память под указатель не выделяется и про реальный адрес знает только компилятор. Для удобства в некоторых случаях имя массива ведет себя как указатель, а в некоторых как массив. Возможно, это и не так удобно на самом деле и только вводит в заблуждение.
    Четвертый пример вообще сносит неподготовленную крышу и вроде как противоречит примерам выше :) Это результат натягивания массива на указатель.
    Адрес автоматического массива берется как смещение относительно указателя стека, так же как и адреса других автоматических переменных.
    В общем не стоит относится к массиву как к указателю. Нужно знать нюансы в поведении и использовать там где это необходимо. К слову в реальности не так уж часто приходится иметь дело со статическими/автоматическими массивами, гораздо чаще - с динамическими. И обычно, там где приходится работать со статическими/автоматическими массивами работа эта достаточно тривиальна, без вот этих ваших вывертов мозга :)

    Еще один пример подобного не совсем стандартного поведения это имя функции:
    void foo(void);
    ...
    if(foo == &foo)
       cout << "Это условие всегда срабатывает" << endl;
  • ДНС - адрес в IPv4, Что будет если его изменить?

    @res2001
    Данила Иванов, Проверить, что возвращает DNS у клиента можно просто выдав в консоли команду:
    nslookup network3.reach.group
    Команда должна вернуть IP адрес, назначеный этому имени.
    Дальше можно этот адрес пропинговать, это проверит доступность адреса.
    Но из-за разных проблем у провайдеров, хостеров, с настройками DNS серверов, промежуточного кэширования и т.п. IP адрес может возвращаться не правильный. Точно так же и пинг может не срабатывать, если на хосте (или где-то на промежуточном шлюзе) пинги заблокированы фаерволом. В общем эта проверка не дает 100% гарантии. Но кое-какую информацию может дать. Особенно, если проверку будет проводить админ хоста, а не просто посторонний, не владеющий дополнительной информацией.
    На счет замены IP адреса - не владея информацией о внутренней организации сети хоста (какие адреса доступны в пуле, какие ДНС имена зарегистрированы, где и какие ДНС серверы обслуживают зону где находится хост, как осуществляется доступ к серверу из интернет и т.д.) вообще нельзя ничего сказать. Обычно замена адреса (какого? на какой? где?) ни к чему не приведет, только сделает еще хуже, но могут быть варианты.
    Так что, да, админам видней. Не стоит лезть в их кухню. Если админы сами не сильны, то им следовало бы найти человека, который сделает им хорошо.
  • Как при переносе файлов NTFS назначать права конечной папки?

    @res2001
    2k21, Это не проблема, на самом деле.
    Это стандартное поведение винды: при переносе файлов права то же переносятся. При копировании - в новых файлах права наследуются от вышестоящей папки назначения.
    Из расширенных прав на самом деле нужно только право на "Смену разрешений". Если его убрать, то пользователи не смогут менять права файлов и они, наверное, будут наследоваться.
    Вообще никогда не ставте для пользователей "Полный доступ", достаточно манипулировать стандартным набором прав.
  • Как сделать переадресацию от клиента во внешнюю сеть(OpenVPN)?

    @res2001
    Не нужно делать "переадресацию портов". Нужно настраивать маршрутизацию и/или NAT и разрешить ВПН трафик в фаерволе.
  • Как настроить ssh туннель для smb?

    @res2001
    Serbli,
    Но так же необходимо чтоб 445 порт был свободен на этом сервере.

    Ключевая фраза. Когда на клиенте и сервере работает SMB, то этот порт занят виндой ВСЕГДА. И не только этот, но и 135,137,138,139 и их UDP братья. Следовательно SSH не сможет открыть эти порты для проброса!
    Так что забудьте. Вам нужен полноценный ВПН, который не SSH.

    Кстати, для SMB используются не только TCP порты, но и такие же UDP порты, а их SSH пробросить не сможет в любом случае.
  • Как исправить резкое повышение пинга в играх при частых действия?

    @res2001
    Данил Самусев, Не имеет значение широкополосный у тебя интернет или нет - скорость передачи данных фиксированная в любом случае. Именно этот факт играет роль, а технология - не важна.
    Кроме скорости это может зависеть и от производительности проца - чем большы ты его загружаешь, тем меньше остается ресурсов для фонового пинга.