2012-04-12 33 views

Trả lời

7
Dim fileReader As String = My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("foo", "bar") 
My.Computer.FileSystem.WriteAllText("C:\test2.txt", fileReader, False) 

Vì vậy, bạn nên sử dụng phương pháp ReadAllText của FileSystem, vượt qua con đường như tham số và sử dụng Thay thế phương pháp để thay thế những gì bạn muốn thay thế . Để sử dụng nâng cao hơn, bạn có thể sử dụng cụm từ thông dụng. Bạn có thể đọc về điều đó here.

phiên bản ngắn hơn:

My.Computer.FileSystem.WriteAllText("C:\test2.txt", My.Computer.FileSystem.ReadAllText("C:\test.txt").Replace("foo", "bar"), False) 
+0

Thaks bệnh thử này –

+0

Cảm ơn tôi sao chép dán mã của bạn trong sự kiện bấm nút lệnh và khi tôi xây dựng chương trình, khi tôi bấm vào nút không có thay thế được thực hiện trên tập tin văn bản nó vẫn đầy với foo. –

+0

Tôi hiểu. String fileReader chứa đúng văn bản? Vấn đề của bạn là tệp không làm mới. Mã của tôi đã được thực hiện chỉ để đọc văn bản, văn bản vẫn chưa được thực hiện, nhưng tôi sẽ sớm cập nhật mã của tôi. –

0

thử ví dụ sau Tôi hy vọng nó giúp

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 
+0

Cảm ơn ốm thử này –

+0

Lỗi 'Open' không được công bố. Chức năng File I/O có sẵn trong không gian tên 'Microsoft.VisualBasic'. \t C: \ Users \ EMACFEL \ AppData \ Local \ Temporary Projects \ WindowsApplication1 \ Form1.vb WindowsApplication1 –

+0

Tôi có làm gì sai không? –

1

Tôi kéo này ra khỏi một chương trình tôi đã làm, chỉ cần cắt bỏ các crap bạn không cần.

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 
1

Tôi có một chương trình nhỏ mà tôi đã viết mà tôi sử dụng để sử dụng lại mã. Tôi sử dụng nó khi tôi cần tạo một lớp hoặc tệp mã, gần như giống với một tệp hiện có. Nó là một chương trình biểu mẫu cơ bản với bốn hộp văn bản và một nút sử dụng lệnh giống như câu trả lời được chấp nhận ngoại trừ các chuỗi không được mã hóa cứng.

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

    Dim source As String = txtSource.Text 
    Dim destination As String = txtDestination.Text 
    Dim oldText As String = txtOldText.Text 
    Dim newText As String = txtNewText.Text 

    My.Computer.FileSystem.WriteAllText(destination, My.Computer.FileSystem.ReadAllText(source).Replace(oldText, newText), False) 

End Sub 
Các vấn đề liên quan