65.9K
CodeProject 正在变化。 阅读更多。
Home

用 C# 编写的通用 Diff/Patch 工具

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.14/5 (11投票s)

2006 年 8 月 25 日

CPOL
viewsIcon

59685

downloadIcon

645

用 C# 编写的通用 Diff/Patch 工具

下载 Diff2.zip - 7.82 KB

引言

你是否曾经想要或需要一个针对 .NET 平台的优化过的差异比较工具?

本文提供了一个用 C# 编写的差异比较工具的实现。

它操作于泛型之上,因此你可以提供任何类型的列表来进行差异比较或修补,
包括字符串(例如文件中的行)、整数、对象,甚至是字节。

使用 Diff 类比较 2 个文本文件的示例

List<string> a = new List<string>();

List<string> b = new List<string>();

StreamReader fs1 = new StreamReader(argv[0]);

StreamReader fs2 = new StreamReader(argv[1]);

string line;

while ((line = fs1.ReadLine()) != null)

{

    a.Add(line);

}

while ((line = fs2.ReadLine()) != null)

{

    b.Add(line);

}

fs1.Dispose();

fs2.Dispose();

Item[] diff_items = Diff2.Diff<string>(a.ToArray(), b.ToArray());

这执行差异比较。最后一个参数指示在执行差异比较时,实际差异是否应包含在编辑脚本中。

© . All rights reserved.