Мне было очень приятно помочь с этим кодом, однако я ударил камень преткновения, и я не уверен, как правильно идти. У меня есть код ниже, который находит и заменяет более 120 тыс. Найденных и заменяет. Проблема в том, что текстовый файл ОГРОМНЫЙ легко превышает 5 гигабайт файлов журнала, поэтому я получаю проблему с памятью, что не удивительно. Так что я загружаю данные в блоки, если это возможно ?, если да, то как.Replace Memory Issue VB.net
Private Sub CmdBtnTestReplace_Click(sender As System.Object, e As System.EventArgs) Handles CmdBtnTestReplace.Click
Dim fName As String = "c:\backup\logs\master.txt"
Dim wrtFile As String = "c:\backup\logs\masterUserFormatted.txt"
Dim strRead As New System.IO.StreamReader(fName)
Dim strWrite As New System.IO.StreamWriter(wrtFile)
Dim s As String
s = strRead.ReadToEnd()
'runs through over 120k of find and replaces
For Each row As DataGridViewRow In DataGridView1.Rows
If Not row.IsNewRow Then
Dim Find1 As String = row.Cells(0).Value.ToString
Dim Replace1 As String = row.Cells(1).Value.ToString
Cursor.Current = Cursors.WaitCursor
'replace using string from 1st column and replaces with string from 2nd column.
s = s.Replace(Find1, Replace1)
End If
Next
strWrite.Write(s)
strRead.Close()
strWrite.Close()
Cursor.Current = Cursors.Default
MessageBox.Show("Finished Replacing")
End Sub
Привет, Стив, Большое спасибо за ваш ответ, я обновил и протестировал, но он, похоже, не проходит через находку и заменяет whick более 100k. С уважением, – vbvirg20
@ vbvirg20 Я обновил свой ответ, чтобы включить более полный пример. Дайте мне знать, если у вас все еще есть проблемы. –
Стивен, ты Звезда, спасибо тебе за помощь и твое объяснение, ясно, что мне нужно еще немного поработать над моими петлями. Еще раз спасибо, VBvirg – vbvirg20