строки с символами типа "\"

Обсуждение программы nhrt - замена текста в файлах (прежнее название nhrplc)
Закрыто
mp65
Сообщения: 1
Зарегистрирован: 23 ноя 2011, 21:24

Примеры использования nhrplc

Сообщение mp65 » 23 ноя 2011, 21:36

Подскажите, а как искать и заменять строки в которых входят символы типа "\" ?
Я пробовал и так "\" и эдак "[\]?" и "\\\" и "\\".
Ниччего не получается.

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

строки с символами типа "\"

Сообщение nhutils » 24 ноя 2011, 14:20

Хм, действительно.
Возможно, какая-то проблема. Перенёс в отдельную тему, проверим.

Проверка показала, причина в что в программе nhrplc используется для считывания параметров командной строки функция CommandLineToArgvW, которая в некоторых случаях меняет строку:
CommandLineToArgvW has a special interpretation of backslash characters when they are followed by a quotation mark character ("), as follows:
• 2n backslashes followed by a quotation mark produce n backslashes followed by a quotation mark.
• (2n) + 1 backslashes followed by a quotation mark again produce n backslashes followed by a quotation mark.
• n backslashes not followed by a quotation mark simply produce n backslashes.
В результате, чтобы строка с \ правильно передалась в программу, есть два варианта:
1. передавать строку без кавычек, например, nhrplc -s:\\ -t:"-" *.txt
2. передавать строку с кавычками, но печатать \ четыре раза, например, nhrplc -s:"\\\\" -t:"-" *.txt

Позже исправим.

nhutils
Сообщения: 582
Зарегистрирован: 09 дек 2009, 18:08
Контактная информация:

Re: строки с символами типа "\"

Сообщение nhutils » 07 фев 2012, 11:13

Исправлено в NHRPLC 2.2.0 viewtopic.php?f=14&t=1975

Закрыто