こんにちは、Visual Basic 2008 Express Editionを使用しています。私の目標は、テンプレートとして機能する.txtファイル全体を読み取り、単語のすべての出現箇所を新しいものに置き換え、この新しい変更されたテキストを新しい.txtに保存することです。コマンドボタン。誰かが私にいくつかのヒントを教えてもらえますか?
質問する
68790 次
4 に答える
10
Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("foo", "bar")
My.Computer.FileSystem.WriteAllText("C:\test2.txt", fileReader, False)
そのため、FileSystem の ReadAllText メソッドを使用し、パスをパラメーターとして渡し、Replace メソッドを使用して置き換えたいものを置き換える必要があります。より高度な置換の使用法として、正規表現を使用できます。あなたはそれについてここで読むことができます.
短いバージョン:
My.Computer.FileSystem.WriteAllText("C:\test2.txt", My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("foo", "bar"), False)
于 2012-04-12T18:25:08.283 に答える
1
私はこれを私が作っていたプログラムから引き出しました。必要のないがらくたを切り取ってください。
Private Sub UPDATECODES_Click(sender As Object, e As EventArgs) Handles UPDATECODES.Click
Dim NEWCODE As String = NEWCODEBOX.Text
Dim CC As String = CURRENTCODE.Text
Dim oldcode As String
Dim codelines(0 To 1) As String
Dim olddate As String
Using r1 As New System.IO.StreamReader(CODEDIR & "d.dat")
olddate = r1.ReadToEnd
End Using
Using r2 As New System.IO.StreamReader(CODEDIR & "oc.dat")
oldcode = r2.ReadToEnd
End Using
If System.IO.File.Exists(CODEDIR & "new code.txt") Then
System.IO.File.Delete(CODEDIR & "new code.txt")
End If
If System.IO.File.Exists(CODEDIR & "CC.DAT") Then
If IO.File.Exists(CODEDIR & "oc.dat") Then
IO.File.Delete(CODEDIR & "OC.DAT")
End If
My.Computer.FileSystem.RenameFile(CODEDIR & "CC.DAT", "OC.DAT")
Dim FILESTREAM As System.IO.FileStream
FILESTREAM = New System.IO.FileStream(CODEDIR & "CC.DAT", System.IO.FileMode.Create)
FILESTREAM.Close()
End If
Using WRITER As New System.IO.StreamWriter(CODEDIR & "CC.DAT")
WRITER.WriteLine(NEWCODE)
End Using
Dim currentlines(0 To 1) As String
Dim a As Integer
Dim TextLine(0 To 1) As String
a = 0
Using sr As New System.IO.StreamReader(CODEDIR & "internet code.txt")
While Not sr.EndOfStream
ReDim codelines(0 To a)
codelines(a) = sr.ReadLine()
codelines(a) = codelines(a).Replace(CURRENTCODE.Text, NEWCODE)
codelines(a) = codelines(a).Replace(olddate, DATEBOX1.Text & " - " & DATEBOX2.Text)
Dim newfile As String = (CODEDIR & "new code.txt")
Using sw As New System.IO.StreamWriter(newfile, True)
sw.WriteLine(codelines(a))
End Using
a = a + 1
End While
End Using
Using sw2 As New System.IO.StreamWriter(CODEDIR & "d.dat")
sw2.WriteLine(date1 & " - " & date2)
End Using
System.IO.File.Delete(CODEDIR & "internet code.txt")
My.Computer.FileSystem.RenameFile(CODEDIR & "new code.txt", "internet code.txt")
CURRENTCODE.Text = NEWCODE
End Sub
于 2013-01-28T01:25:19.430 に答える
0
次の例を試してください
Dim lOpenFile As Long
Dim sFileText As String
Dim sFileName As String
sFileName = "C:\test.txt"
'open the file and read it into a variable
lOpenFile = FreeFile
Open sFileName For Input As lOpenFile
sFileText = Input(LOF(lOpenFile), lOpenFile)
Close lOpenFile
'change 'John Doe' to 'Mary Brown'
sFileText = Replace(sFileText, " John Doe ", " Mary Brown ")
'write it back to the file
lOpenFile = FreeFile
Open sFileName For Output As lOpenFile
Print #lOpenFile, sFileText
Close lOpenFile
于 2012-04-12T18:13:17.273 に答える