18

我需要在 VB.NET 中实现一个 Diff 算法来查找一段文本的两个不同版本之间的变化。我在网上找了一个侦察员,发现了几种不同的算法。

这里有人知道我可以实现的“最佳”算法吗?

4

3 回答 3

7

好吧,我在 codeproject 上使用了 c# 版本,它真的很适合我想要的……

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

如果你不能自己做,你可以通过在线转换器把它翻译成 VB.net ...

于 2008-08-06T07:49:32.407 回答
7

我喜欢Eugene Myers的 O(ND) 差分算法及其变体。我相信这是 GNU diff 中使用的算法。有关良好的背景,请参阅Wikipedia

这是相当理论上的,您可能希望找到源代码,但我不知道 VB 中有任何源代码。

于 2008-08-06T07:58:13.557 回答
3

我不确定它是否是最好的差异算法,但您可能想查看那些谈论 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

于 2008-08-06T07:52:42.180 回答