ブロック単位で置き換える

VB Tips And Sample(HOME)(VB.NET Sample インデックス)

ブロック単位で置き換える

最近HPの更新を再開しましたが、文字単位ではなく、ブロック単位で置き換える必要があるのでサンプルを作成。
ベクターで探したら既にその様なソフトが転がっていました。
参考までに・・・・・
ストリームリーダで読み込んで、置き換えて保存するだけ。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'openfile

        OpenFileDialog1.Filter = "テキスト(*.txt)|*.txt"
        OpenFileDialog1.Title = "ファイルを選択してください"
        OpenFileDialog1.RestoreDirectory = True

        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            'パス取得
            Me.TextBox3.Text = OpenFileDialog1.FileName
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        'ブロック単位で置き換えるには?

        Dim strReplace As String

        '読み込む
        'Shift-JISとして開く
        Dim sr As New System.IO.StreamReader(Me.TextBox3.Text, System.Text.Encoding.GetEncoding(932))
        '最初から最後まで一挙に読む
        Dim st As String = sr.ReadToEnd()
        '閉じとく
        sr.Close()
        strReplace = st

        '置き換える
        strReplace = Replace(strReplace, Me.TextBox1.Text, Me.TextBox2.Text)

        '保存
        Dim sw As New System.IO.StreamWriter(Me.TextBox3.Text, False, System.Text.Encoding.GetEncoding(932))
        sw.Write(strReplace)
        '閉じとく
        sw.Close()


        MessageBox.Show("置き換え終了", "完了", MessageBoxButtons.OK)


    End Sub
End Class



VB Tips And Sample(HOME)