Найдите различия текста в C # и используйте их, чтобы вернуть текст в предыдущее состояние - PullRequest
2 голосов
/ 01 марта 2011

Знаете ли вы о какой-либо библиотеке, написанной на C # или скомпилированной для .NET, которую я могу использовать, чтобы найти различия между двумя строками (что было вставлено и что было удалено), а затем использовать это различие, чтобы вернуть текст в исходное состояние (вместо необходимости сохранять копию исходного текста)?

Ответы [ 3 ]

2 голосов
/ 01 марта 2011

То, что вы ищете, - это то, что решает проблему Longest Common Subsequence .Есть коммерческие библиотеки, которые реализуют это, но вы можете найти бесплатную версию, которую вы сможете использовать или адаптировать в CodeProject: http://www.codeproject.com/KB/recipes/DiffAlgorithmCS.aspx.

Если вы заинтересованы в базовой реализации такого алгоритма,Вы также можете найти его в Алгоритмах Wiki Books .

1 голос
/ 01 марта 2011

Вы в основном ищете что-то вроде утилиты diff, но в C #?

Вы можете попробовать адаптировать один из них:

http://www.codeproject.com/KB/cs/differ.aspx

http://www.codeproject.com/KB/files/CsLCSDiff.aspx

http://www.codeproject.com/KB/recipes/diffengine.aspx

0 голосов
/ 01 марта 2011

Вы должны узнать об управлении исходным кодом, которое дает вам эту функцию как часть системы, которая делает то, что вы просите.

Subversion проста для понимания, а ее клиент Windows удобен для пользователя.

Недавно я начал использовать Git, потому что он показался мне интересным, и мне нравится, как он работает для команд.

Кроме того, WinMerge - это инструмент, который делает то, что вы хотите, вне контекста SCM.

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