Можем ли мы сравнить два файла JavaScript с помощью C #? - PullRequest
0 голосов
/ 27 сентября 2010

Я попытался сравнить два текстовых файла.Если они содержат одинаковые данные, но есть разница даже в один пробел, результат отображается как «другой».

Может кто-нибудь сказать мне, как сравнить два файла JavaScript с использованием C #?

Ответы [ 3 ]

1 голос
/ 27 сентября 2010

Поскольку JavaScript допускает пропуски (допускает любое количество пробелов при условии правильного синтаксиса), самое простое, что нужно сделать, если вы хотите сравнить все , но , - пропустить регулярное выражение:

Regex _r = new Regex(@"\s+", RegexOptions.Compiled);
string result = _r.Replace(value, " ");

Запустите это для обоих файлов и сравните результаты;он заменяет любую последовательность стандартных пробельных символов (пробел, табуляция, возврат каретки, вертикальная табуляция и т. д.) одним пробелом.Затем вы можете сравнить с Equals (с учетом регистра или нет, как вам требуется).

Конечно, пробел имеет значение внутри строк, поэтому предполагается, что обработка строк во всех сравниваемых файлах не слишком зависит от пробелов.

Однако два совершенно разных кодовых файла могут иметь одинаковые эффекты, поэтому, если это то, что вам нужно, у вас впереди тяжелая работа.

0 голосов
/ 27 сентября 2010

Технически, если один файл содержит лишний пробел, они не являются «одинаковыми». Сначала я сравнил бы длины, и если они не совпадают, вам нужно сделать побайтное сравнение. Если вы хотите удалить лишние пробелы, вы, вероятно, сначала захотите сделать что-то вроде Trim () для содержимого обоих файлов.

Вот ссылка на старый пост MS, описывающий, как создать функцию сравнения файлов:

http://support.microsoft.com/kb/320348

0 голосов
/ 27 сентября 2010

Вам просто нужно знать, точно ли они одинаковы? Если это так, вы можете просто загрузить их в память и сравнить свойство .length () ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...