fc2ブログ

トップ  >  サンプルソース  >  ファイル差分出力(C#/VB.NET)

ファイル差分出力(C#/VB.NET)

2010年02月02日

2つのテキストファイルの差分をCSV出力するサンプル(ソース/コード)です。NonDiffNet.dll を使っています。

' --------------------------------------------------------
' ファイル差分をCSV出力するサンプル(VB.NET/VS2005)
Private Sub Button1_Click( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles Button1.Click

    Dim f1 As String = "D:\Temp\Test01.txt"
    Dim f2 As String = "D:\Temp\Test02.txt"
    Dim f3 As String = "D:\Temp\Test03.csv"

    ' ファイル差分をCSV出力
    Dim fdf As String(,) = FileDiff(f1, f2)
    ' CSVファイルオープン
    Dim sw As IO.StreamWriter = _
        New IO.StreamWriter(f3, False, _
        System.Text.Encoding.GetEncoding("SHIFT-JIS"))
    For i As Integer = 1 To fdf.GetLength(1) - 1
        If fdf(0, i) <> "" Then ' 差分のみ出力
            Dim line As String = _
                fdf(0, i) & "," & _
                fdf(1, i) & "," & _
                fdf(2, i) & "," & _
                fdf(3, i) & "," & _
                fdf(4, i)
            ' CSVファイル出力
            sw.WriteLine(line)
        End If
    Next
    ' CSVファイルクローズ
    sw.Close()
End Sub
' ファイルを比較し結果を返します
' NonDiffNet.dllを参照設定しています。
Private Function FileDiff( _
    ByVal f1 As String, ByVal f2 As String) As String(,)

    ' ファイル読込
    Dim sr1 As IO.StreamReader = _
        New IO.StreamReader(f1, _
        System.Text.Encoding.GetEncoding("SHIFT-JIS"))
    Dim sr2 As IO.StreamReader = _
        New IO.StreamReader(f2, _
        System.Text.Encoding.GetEncoding("SHIFT-JIS"))
    Dim dt1 As String = sr1.ReadToEnd()
    Dim dt2 As String = sr2.ReadToEnd()
    sr1.Close()
    sr2.Close()

    ' ファイルの比較
    Dim NonDiff As New NonDiffNet.NonDiffClass()
    Return NonDiff.NonDiff( _
        dt1, dt2, False, 2, 1, 1, "file0", "file1")
End Function
' --------------------------------------------------------

// -------------------------------------------------------
// ファイル差分をCSV出力するサンプル(C#.NET/VS2005)
private void button1_Click(object sender, EventArgs e)
{
    String f1 = @"D:\Temp\Test01.txt";
    String f2 = @"D:\Temp\Test02.txt";
    String f3 = @"D:\Temp\Test03.csv";

    // ファイル差分をCSV出力
    String[,] fdf = FileDiff(f1, f2);
    // CSVファイルオープン
    System.IO.StreamWriter sw =
        new System.IO.StreamWriter(f3, false,
        System.Text.Encoding.GetEncoding("SHIFT-JIS"));
    for (int i = 1; i <= fdf.GetLength(1) - 1; i++)
    {
        if (fdf[0, i] != "") // 差分のみ出力
        {
            String line =
                fdf[0, i] + "," +
                fdf[1, i] + "," +
                fdf[2, i] + "," +
                fdf[3, i] + "," +
                fdf[4, i];
            // CSVファイル出力
            sw.WriteLine(line);
        }
    }
    // CSVファイルクローズ
    sw.Close();
}
// ファイルを比較し結果を返します
// NonDiffNet.dllを参照設定しています。
private String[,] FileDiff(String f1, String f2)
{
    // ファイル読込
    System.IO.StreamReader sr1 =
        new System.IO.StreamReader(f1,
        System.Text.Encoding.GetEncoding("SHIFT-JIS"));
    System.IO.StreamReader sr2 =
        new System.IO.StreamReader(f2,
        System.Text.Encoding.GetEncoding("SHIFT-JIS"));
    String dt1 = sr1.ReadToEnd();
    String dt2 = sr2.ReadToEnd();
    sr1.Close();
    sr2.Close();

    // ファイルの比較
    NonDiffNet.NonDiffClass NonDiff =
        new NonDiffNet.NonDiffClass();
    return NonDiff.NonDiff(
        dt1, dt2, false, 2, 1, 1, "file0", "file1");
}    
// -------------------------------------------------------

トラックバック5位狙いだワン | トップページへ戻る | トラックバックしないワン

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る