我需要在 VB.NET 中实现一个 Diff 算法来查找一段文本的两个不同版本之间的变化。我在网上找了一个侦察员,发现了几种不同的算法。
这里有人知道我可以实现的“最佳”算法吗?
好吧,我在 codeproject 上使用了 c# 版本,它真的很适合我想要的……
http://www.codeproject.com/KB/recipes/diffengine.aspx
如果你不能自己做,你可以通过在线转换器把它翻译成 VB.net ...
我喜欢Eugene Myers的 O(ND) 差分算法及其变体。我相信这是 GNU diff 中使用的算法。有关良好的背景,请参阅Wikipedia。
这是相当理论上的,您可能希望找到源代码,但我不知道 VB 中有任何源代码。
我不确定它是否是最好的差异算法,但您可能想查看那些谈论 SOCT4 和 SOCT6 的链接
http://dev.libresource.org/home/doc/so6-user-manual/concepts
还有:
http://www.loria.fr/~molli/pmwiki/uploads/Main/so6group03.pdf
http://www.loria.fr/~molli/pmwiki/uploads/Main/diffalgo.pdf