4

我正在寻找快速比较 2 个文本文件(+-15000 行)并获取两个文件中不同的输出字符串的最佳方法。第一个是旧库存,新库存是当前库存,我想生成第三个包含 file2 和 file1 之间不同的字符串。(这 2 个文件中有 95% 是相似的)。

4

3 回答 3

10

非常简单的方法,假设相似意味着相等

var file1Lines = File.ReadLines(file1Path);
var file2Lines = File.ReadLines(file2Path);
IEnumerable<String> inFirstNotInSecond = file1Lines.Except(file2Lines);
IEnumerable<String> inSecondNotInFirst = file2Lines.Except(file1Lines);

您可以使用foreach来枚举行。

于 2012-11-08T13:45:25.047 回答
3

你可以使用谷歌的这个差异库。查看采用 2 个字符串并返回差异列表的 diff_main 方法。

于 2016-12-16T15:30:12.900 回答
1

如果输出顺序相同,直接比较行。当其他文件中缺少该值时,您可能需要跳过行。

但是,如果输出不同,那么您可能需要将文件加载到内存中,并从一个文件到另一个文件中查找相关的库存项目。然后在未找到或不同时做任何你需要的事情。

于 2012-11-08T13:43:04.723 回答