Файлы новой версии nhrt

Скачать новую версию программы nhrt v2.12.0.14 можно по следующей ссылке

nhrt binaries

download_buttonИсполняемые файлы nhrt.exe, nhconv.exe. Требуется установка файлов вручную. Работает в Microsoft Windows XP SP3 и старше. zip 352 кБ

Предыдущие версии nhrt (nhreplace)

Архивные версии

Загрузка nhrt: 6 комментариев

  • 08.05.2019 в 06:55
    Постоянная ссылка

    nhutils, спасибо!

    вместо регулярного выражения
    -sre:"Первый канал \(\+1\)"
    проще написать обычный текст
    -spt:"Первый канал (+1)"

    чтобы указать, что образец находится в конце строки, в регулярных выражениях пишут:
    -sre:"Первый канал$"

    Сразу я так и писал, но программа не отрабатывала, замен не было. Пришлось кавычки экранировать. Так же и в случае просто якоря $.
    Поэтому пришел к варианту:
    -sre:"Первый канал \(\+1\)\r?$" -t:"1 канал" -i -occ:1
    Так вроде всё нормально обрабатывается.

    программа nhrt заменяет всё заданное выражение поиска.

    Да, это я понял. Спасибо.

    Ответить
  • 07.05.2019 в 08:06
    Постоянная ссылка

    Здравствуйте.
    В описании программы указано «..требуется установка файлов вручную»
    Подскажите, пожалуйста, как именно правильно скомпилировать, чтобы получился файл nhreplace.exe ?

    Ответить
    • 07.05.2019 в 12:31
      Постоянная ссылка

      Здравствуйте, «требуется установка файлов вручную» означает, что нужно вручную распаковать исполняемые файлы из скачанного zip архива, положить в нужную папку, прописать путь в PATH.
      Компилировать не требуется. nhreplace.exe — это старое название программы, она была переименована в nhrt.exe, начиная с версии 2.9 https://nhutils.ru/blog/nhrt-v2-9-0/

      Ответить
      • 07.05.2019 в 19:13
        Постоянная ссылка

        Спасибо за ответ! И огромный респект за программу. Очень нужная утилита во многих случаях. Жаль, что мало кто о ней знает.
        Как раз собирался писать скрипт vbs для редактирования плейлистов и случайно натолкнулся на Вашу программу. Это то, что «доктор прописал»
        Скрипт получался огромным, во входном файле могло требоваться и до 1000 замен, а в коде для каждой замены 15 строк.
        В текстовом файле для параметра -list Вашей программы получается гораздо меньше.
        Но никак не могу разобраться как конкретно указать выражение, которое нужно заменить, чтобы замена шла только если будет найдено всё указанное выражение.
        Например в строках «Первый канал», «Первый канал HD», «Первый канал (+1), если не указывать -occ:1, поменяются все найденные вхождения. Но если указать так:
        -set:"Первый канал" -t:"1 канал" -i -occ:"1"
        -set:"Первый канал HD" -t:"1 канал HD" -i -occ:"1"
        -sre:"Первый канал \(\+1\)" -t:"1 канал (+1)" -i -occ:"1"

        то замена выполняется только во втором и третьем вхождении, первое почему то не изменяется.
        В разных плейлистах эти строки могут быть на разных местах, их нужно как-то конкретно указать.
        Пробовал добавлять конец строки (выражения для замены в плейлисте всегда в конце строки) так:
        -sre:"Первый канал \(\+1\)$" -t:"1 канал (+1)" -i -occ:"1"
        Но при этом замена не выполняется.
        Извините, может немного сумбурно объяснил. Вкратце: для замены нужно указать конкретное выражение, чтобы не трогать похожие.
        Можно ли так сделать, подскажите, пожалуйста ?

        Ответить
        • 07.05.2019 в 22:45
          Постоянная ссылка

          Вроде разобрался, не знаю насколько правильно, добавил в конец выражения для замены конструкцию с якорем \r?$
          Получилось так:
          -sre:"Первый канал\r?$" -t:"1 канал" -i -occ:1
          Вроде отрабатывает нормально.

          Ответить
          • 08.05.2019 в 01:22
            Постоянная ссылка

            чтобы замена шла только если будет найдено всё указанное выражение

            не очень понятно, что имеется в виду, потому что программа nhrt заменяет всё заданное выражение поиска. то ли подразумевается совпадение всей строки в файле со строкой поиска, то ли что-то другое…

            вообще, в списке надо поставить образцы в другом порядке, чтобы более короткая строка поиска была в списке последней и не срабатывала вместо более длинных:
            -set:"Первый канал HD" -t:"1 канал HD" -i -occ:"1"
            -sre:"Первый канал \(\+1\)" -t:"1 канал (+1)" -i -occ:"1"
            -set:"Первый канал" -t:"1 канал" -i -occ:"1"

            вместо регулярного выражения
            -sre:"Первый канал \(\+1\)"
            проще написать обычный текст
            -spt:"Первый канал (+1)"

            чтобы указать, что образец находится в конце строки, в регулярных выражениях пишут:
            -sre:"Первый канал$"
            здесь грамматика описывается TR1 Regular Expressions

            если конец строки указывать в обычном тексте, то для Windows можно сделать:
            -set:"Первый канал\r" -t:"1 канал\r"

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *