1

Тема: Замена части строк по условию

Приветствую!
Хотел спросить у Вас совета.
Есть rtf файл большой.
В нем есть строки в которых есть слова начинаются с определенного значка.

Замена части строк по условию

для работы мне пришлось вырать все слова со значком корня и поменять в другой программе, например так ⎷abhigā = abhi ⎷gā (всего таких замен шт 500)
И я хочу вставить измененные корни на их прежнее места, например так ⎷abhigā (abhi ⎷gā), либо на строку ниже.

Замена части строк по условию

Как правильно это реализовать? Только макросом? поиск по строке и изменение? и все это в цикле

Сам список выглядит так:
⎷saṃbhar = saṃ ⎷bhar
⎷saṃbhū    = saṃ ⎷bhū
⎷saṃman = saṃ ⎷man
⎷saṃmā    = saṃ ⎷mā
⎷saṃpad    = saṃ ⎷pad
и тд

2

Re: Замена части строк по условию

С помощью Александра наваял макрос, пытался решить через OpenTextFile но он работает с UTF-16, а не с UTF-8. Хотя можно было сохранить файл и в Utf-16.

Sub Read_text_File()
Dim objStream
Dim sText As String
Dim sText_in As String
Dim sText_arr
Dim sText_out As String
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Charset = "utf-8"
    objStream.Open
    objStream.LoadFromFile ("c:\dhatu_file.txt")
    Do Until objStream.EOS
        sText = objStream.ReadText(-2)
        sText_arr = Split(sText, "|")
        sText_in = sText_arr(0)
        sText_out = sText_arr(1)
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = sText_in
            .Replacement.Text = sText_out
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchAllWordForms = False
            .MatchSoundsLike = False
            .MatchWildcards = True
        End With
        Selection.Find.Execute Replace:=wdReplaceAll
    Loop
    MsgBox ("TheEnd")
End Sub

3

Re: Замена части строк по условию

файл dhatu_file.txt выглядит так
√arṣ |a-√rṣ
√ābhā |ā-√bhā
√ācchad |ā-√cchad
√ādhā |ā-√dhā
√ādā |ā-√dā
√āgā |ā-√gā
√ājñā |ā-√jñā
сохранен в utf-8