ブロック単位で置き換える
ブロック単位で置き換える
最近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
|
|