Сравнение по содержимому: кроме заданных разделителей
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Общие вопросы

#1: Сравнение по содержимому: кроме заданных разделителей Author: 790 PostPosted: Tue Oct 10, 2023 14:10
    —
Сравнение по содержимому: 2 текстовых файла таблицы стилей css. Там есть строки "закоментированные", начинаются с "/* " и такие же "незакоментированные", начинаются с @. Если разница только в наличии "/* " в начале строки, то такие строки меня не интересуют.
Отсюда вопрос:
1. Как искать различия в любом месте строки, кроме тех строк, у которых единственное различие только в "/* " в начале строки.
2. Или, если включить "Метод 3: Находить ... возле заданных разделителей", то как редактировать этот список разделителей, чтобы различие возле этих самых разделителей НЕ учитывалось, т.е. как бы наоборот.

Извиняюсь за спутанные объяснения, мне пока ещё не указали на нужные термины...

#2:  Author: Orion9 PostPosted: Sun Apr 21, 2024 01:01
    —
790
Кажется, я в программе Beyond Compare видел подобный функционал.

#3:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Apr 21, 2024 06:58
    —
790
1. Произвольные начальные символы можно исключить из сравнения парой экспериментальных ключей CompareSkipFirstL (количество игнорируемых символов в файле слева) и CompareSkipFirstR (их количество в файле справа). Подробности в справочнике по ключам, в официальной справке TC функция (хотя и старая) до сих пор не документирована, поскольку недостаточно доработана. Есть также свежий ключ CompareSkipLineNumbers, но он про другое, там только начальные цифры не учитываются (тут подробности по-русски вскоре будут в более новой версии справочника).
2. Что касается метода 3, то в ключе CompareResyncSeparators имеется по умолчанию определённый набор символов-разделителей (см. тот же справочник). Можно попробовать явным образом указать его значением только то, что вам нужно, не включая ненужное.

#4:  Author: Monarch-LFV PostPosted: Sun Apr 21, 2024 10:05
    —
790
Есть еще программа Compare it! (аналог Beyond Compare).
Там можно задать регулярным выражением разные варианты для исключения. В вашем случае примерно так:
Code:
^\s*/\*.*

"Заменить" оставить пустое. Будет пропускать при сравнении строки с комментариями вида " /* comment".

#5:  Author: Orion9 PostPosted: Sun Apr 21, 2024 11:17
    —
Сейчас проверил. К Beyond Compare можно скачать отдельный шаблон формата .css:
https://www.scootersoftware.com/kb/moreformats?version=4&platform=Windows
Судя по тому, что комментарии на вкладке Grammar к этому формату обозначены как Comment=Text from /* to */, то должно все работать, но я не проверял.

#6:  Author: 790 PostPosted: Mon Apr 22, 2024 16:36
    —
Avada Спасибо.
1. С CompareSkipFirstL так не работает, потому что строки, которые начинаются с @ не имеют 3х пробелов вместо "/* " перед собой:

/* @text
/* @text
@text
/* @text
@text
@text

CompareSkipFirstL просто уберёт первые три знака во всех строках.

2. Также не работает.
Меня интересуют строки, где произошли какие-то изменения в text, чтобы когда я ставлю галочку "Только различия", показывались только эти строки. Если в строке разница ТОЛЬКО в наличии/отсутствии "/* ", то такие строки не интересны, потому что это я сам делал эти изменения.

#7:  Author: Monarch-LFV PostPosted: Tue Apr 23, 2024 01:11
    —
790
С уточнением стало понятнее. То, о чем я писал выше, но с регуляркой:
Code:
^\s*/\*\s*

Должно помочь. Получается, просто перед сравнением заменяется «/* » на ничего, а соответственно эта строка становится строкой без комментария, и если она равна в таком виде со строкой в другом файле, то выделяться не будут.

#8:  Author: 790 PostPosted: Tue Apr 23, 2024 14:07
    —
Monarch-LFV
Да, спасибо, это работает. Но... не будем здесь обсуждать посторонний софт Wink И всё-таки хотелось бы делать это в ТС.



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group