需要一些帮助,我有两个信息源,并且这些信息由不同的程序导出到两个不同的 CSV 文件。它们应该包含相同的信息,但这正是需要检查的内容。
因此我想做的事情如下:
- 从两个文件中获取信息。
- Compare
- 输出任何差异以及差异所在的文件。(例如文件 A 包含此内容,但文件 B 不包含此内容,反之亦然)。
这些文件有 200,000 多行,因此需要尽可能有效。
尝试使用 Excel 执行此操作,但事实证明太复杂,我真的很难以编程方式找到一种方法。
假设这些文件确实应该是完全相同的,直到文本限定符、行的顺序以及每个文件中包含的行数,最简单的方法可能是简单地一起迭代两个文件并比较每行。
using (StreamReader f1 = new StreamReader(path1))
using (StreamReader f2 = new StreamReader(path2)) {
var differences = new List<string>();
int lineNumber = 0;
while (!f1.EndOfStream) {
if (f2.EndOfStream) {
differences.Add("Differing number of lines - f2 has less.");
break;
}
lineNumber++;
var line1 = f1.ReadLine();
var line2 = f2.ReadLine();
if (line1 != line2) {
differences.Add(string.Format("Line {0} differs. File 1: {1}, File 2: {2}", lineNumber, line1, line2);
}
}
if (!f2.EndOfStream) {
differences.Add("Differing number of lines - f1 has less.");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)