powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Построчный поиск и замена (Выручайте Величайшие умы )
1 сообщений из 1, страница 1 из 1
Построчный поиск и замена (Выручайте Величайшие умы )
    #38468389
Ghost Mouse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите, пожалуйста, что можно сделать для замены в документе записей типа:

Пример : У меня есть серый Cat и большая DOG из fusion reactor возле его Clean будки

Результат : У меня есть серый Кот и большая Собака из ядерного реактора возле его чистой будки .

(Можно реализовать как нибудь быстрее , более 1000 зап обрабатываются , где то 40 сек ) , есть реализация через массив (но 'тоже тормозит , плюс придётся вручную 1000 зап (сейчас 390 зап и лагает при замене)) , или реализация поиска строчно .

1-ый Вариант

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub engtorus (sin$, sout$)

Selection.EndKey wdStory  
    Selection.HomeKey Unit:=wdStory
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = sin$
        .Replacement.Text = sout$
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = True
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute Replace:=wdReplaceAll

Sub Bot()

 engtorus "DOG", "Собака"
 engtorus "Cat", "Кот"
 engtorus "fusion reactor", "термоядерный реактор"
 engtorus "Clean", "Чистой"



2-ой Вариант

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub qwe()
Dim str As Range
Dim FindText As Variant
Dim ReplaceText As Variant
Dim i As Long
Set str = ActiveDocument.Range
FindText = Array("DOG", "Сat ", "fusion reactor", "Clean")
ReplaceText = Array("Собака", "Кот", "термоядерный реактор", "чистой")
With str.Find
.ClearFormatting
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindsTextop
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Format = True
.MatchCase = True
For i = LBound(FindText) To UBound(FindText)
.Text = FindText(i)
.Replacement.Text = ReplaceText(i)
.Execute Replace:=wdReplaceAll
Next i
End With
End Sub
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Построчный поиск и замена (Выручайте Величайшие умы )
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]