2010-09-27 6 views
0

Я попытался сравнить два текстовых файла. Если они содержат одни и те же данные, но есть разница даже в одном пространстве, результат отображается как «другой».Можно ли сравнить два файла JavaScript с помощью C#?

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

ответ

0

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

+0

Конечно, вы сказали, что это точно. Предположим, что во втором файле у меня есть какое-то пространство между кодом. Тогда как удалить эти вещи. –

0

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

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

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

1

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

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

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

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

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

Смежные вопросы