Я пытаюсь создать конвертер для чтения очень длинного текстового файла в поисках строки, содержащей определенную строку. Когда он находит эту строку, он должен записать найденную строку в новый файл вместе с другими строками до и после.
Мое приложение работает, но повторяет только первую найденную строку во всех группах строк, которые оно создает.
Например, группа в старом файле выглядит так:
[PARTICLE930]
INDEX = 930 ;º§¶óÅä076_¼ÕµîÀÌÆåÆ®_¿À¸¥
ABSAXIS=0
PARTICLE=.\Chef\60LV_WHITE\B\BF\076\hand_eff_r.spt
Я хочу извлечь только строку, начинающуюся с PARTICLE=.\
, и автоматически создать вокруг нее новые строки. Поскольку номера групп являются последовательными и не имеют пробелов, мне не нужно извлекать порядковый номер, я могу создать его на лету.
Мой код до сих пор:
Dim source As String = "Particle.ini"
Dim dest As String = "CParticle.ini"
Dim path As String = Application.StartupPath
Dim max As Integer = 1233
Dim l_pnum As String = "[PARTICLE{0}]"
Dim l_index As String = "INDEX = {1}"
Dim l_absaxis As String = "ABSAXIS=0"
Dim l_particle As String = "{2}"
If System.IO.File.Exists(path & "\" & source) Then
Dim objReader As New System.IO.StreamReader(path & "\" & source)
Dim objWriter As New System.IO.StreamWriter(path & "\" & dest, True)
objWriter.WriteLine("[PARTICLE_INFO]")
objWriter.WriteLine("MAXPARTICLE=" & max.ToString)
Dim loop_num As Integer = 1
Do While objReader.Peek() <> -1
Dim line_read As String = objReader.ReadLine()
If line_read.Contains("PARTICLE=.\") Then
l_pnum = l_pnum.Replace("{0}", loop_num.ToString)
l_index = l_index.Replace("{1}", loop_num.ToString)
l_particle = l_particle.Replace("{2}", line_read)
objWriter.WriteLine(l_pnum)
objWriter.WriteLine(l_index)
objWriter.WriteLine(l_absaxis)
objWriter.WriteLine(l_particle)
loop_num = loop_num + 1
End If
Loop
Else
MessageBox.Show("File does not exist" & vbNewLine & path & "\" & source)
End If
Как я сказал выше, это работает, но это просто повторение индекса 1
снова и снова столько раз, сколько есть групп для преобразования. Фактически все, что я хочу сделать, это удалить все белые пробелы и иностранные символы из файла, сохранив его структуру.
Я не уверен, что я сделал неправильно здесь. Кто-нибудь может помочь?