4

2つのテキストファイル(+ -15000行)をすばやく比較し、2つのファイルで異なる出力文字列として取得するための最良の方法を探しています。1つ目は古いインベントリ、新しいインベントリは現在のインベントリです。3つ目は、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

Google のこのdiff ライブラリを使用できます。2 つの文字列を受け取り、相違点のリストを返す diff_main メソッドを見てください。

于 2016-12-16T15:30:12.900 に答える
1

出力が同じ順序である場合は、行を直接比較します。他のファイルで値が欠落している場合は、行をスキップする必要がある場合があります。

ただし、出力が同じでない場合は、ファイルをメモリにロードし、関連するインベントリ アイテムを 1 つのファイルから別のファイルに検索する必要がある場合があります。次に、見つからない場合や異なる場合に必要なことを行います。

于 2012-11-08T13:43:04.723 に答える