c# Compare two text files and generate a new one with differences

血红的双手。 提交于 2019-12-19 10:14:05

问题


I am looking for the best way to compare 2 text files (+-15000lines) quickly and get as output strings that are differents in the two files. 1st one is an old inventory, new one is the current inventory and I would like to generate an third one containing strings that are different between file2 & file1. (95% of the 2 files will be similar).


回答1:


Very simple approach, assuming that similar means equal:

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

You can use foreach to enumerate the lines.




回答2:


You can use this diff library from Google. Look at the diff_main method that takes the 2 strings and returns a list of differences.




回答3:


If the output is in the same order, compare lines directly. You may need to skip line when the value is missing in the other file.

If, however, the output is not the same, then you might need to load the files into memory and look up the relevant inventory item from one file in to the other. Then do whatever you need when not-found or different.



来源:https://stackoverflow.com/questions/13290059/c-sharp-compare-two-text-files-and-generate-a-new-one-with-differences

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!