如何使用google-diff-match-patch C#库

本文关键字:google-diff-match-patch 何使用 | 更新日期: 2023-09-27 17:57:09

我正在查看 http://code.google.com/p/google-diff-match-patch/并已下载文件。当我看它是 2 个文件

DiffMatchPatch.cs
DiffMatchPatchTest.cs

当我尝试创建 DiffMatchPatch 的新对象时.cs我必须传入一些操作和字符串文本。

http://neil.fraser.name/software/diff_match_patch/svn/trunk/demos/demo_diff.html

在演示中,他们划掉了不同的单词,这就是我想要实现的目标。

正在尝试比较服务器端的 2 个文本块,找到差异并向用户发送电子邮件,其中包含文本文件块,就像最终结果在我上面发布的演示中一样。

那么有没有人有关于如何使用 C# 版本的教程?

如何使用google-diff-match-patch C#库

作为参考,这真的很容易:

var dmp = new diff_match_patch();
var diffs = dmp.diff_main(text1, text2);
var html = dmp.diff_prettyHtml(diffs);

当前版本(2.1.0)的实现看起来像这样

var dmp = DiffMatchPatchModule.Default;
var diffs = dmp.DiffMain(text1, text2);
var html = dmp.DiffPrettyHtml(diffs);

对于任何因为标题而遇到此线程并期望通过 NuGet 上的 https://github.com/pocketberserker/Diff.Match.Patch 库使用 Google Diff-Match-Patch 算法来创建差异字符串的人,这样他就可以将更改发送到某个地方(例如通过 websocket)并根据旧值和 diff 字符串在目标处恢复它, 这将像这样工作:

var oldValue = "Test old text.";
var newValue = "Test new text.";
// create diff string
var dmp = DiffMatchPatch.DiffMatchPatchModule.Default;
var diffs = dmp.DiffMain(oldValue, newValue);
var srcDelta = dmp.DiffToDelta(diffs);
// restore from diff
var dmp = DiffMatchPatch.DiffMatchPatchModule.Default;
var dstDelta = dmp.DiffFromDelta(oldValue, srcDelta);
var restoredNewValue = dmp.DiffText2(dstDelta);