NonSoft

2つのテキストファイルの差分を解析する
サンプル(VB6/VB.NET)の概要


 ち〜な〜み〜に〜

2つのテキストファイルの差分を解析するサンプル(VB6)の概要
2つのテキストファイルの差分を解析するサンプル(VB.NET)の概要
このサンプルは、2つのテキストファイルを比較し差分解析結果を返します。まず、変更前/後のテキストファイルを読み込みます。 読み込んだ変更前ファイルを先頭行から差分解析し変更後ファイルと一致するかを確認します。 一致していれば解析済み行としてカウントアップします。 一致していなければ次の一致行を探します。 そこで見つかった一致行までが差分となります。 しかし、変更前ファイルからのみ差分解析すると、実際より差分が大きくなってしまうので変更後ファイルからの差分解析も行います。 変更前ファイルからの差分解析結果と変更後ファイルからの差分解析結果のを比較し一致行以降の一致行数が多い方を採用します。 そうして得た結果を配列に並べ、変更状態を示す文字列(UPD,ADD,DEL)と共に返します。 引数には変更前/後ファイル名以外に精度微調整パラメータ(p1:一致とみなす文字数、p2:一致とみなす行数)があります。 これは、不一致行を発見してから次に一致行とみなる条件です。 この値を調整する事により差分解析結果が変わります。 変更前/後のテキストファイルに少しの変更しか無い場合はp1を小さくした方がより現実的な差分になります。 また、変更前/後のテキストファイルに大きな変更を行なった場合はp1の値を大きくした方が全体的な差分が分かりやすくなります。

このサンプルは「テキスト差分表示ツール」の「Ver2.04」で使用しているもので最新版とは異なりますが、基本的な考え方は一緒です。 最新版では、不一致行の中から一致行を再度探す処理を入れ精度を高くしていますが、基本的にはバージョンで充分だと思っています。 また、最新版では文字コードの自動判定を行なっていますが、このサンプルはSJISコードのテキストファイルのみ差分解析が可能です。