powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / word замена нескольких символов
8 сообщений из 8, страница 1 из 1
word замена нескольких символов
    #39394912
HB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HB
Гость
Здравствуйте, специалистом по VB не являюсь, прошу помочь. Столкнулся на одном форуме с проблемой - при публикации программного питоновского кода, сочетания символов

:(
')
'D
:P

превращаются в смайлы. Отключение BB кода убирает цветовую разметку кода, что не есть хорошо.

Написал пробный макрос в ворде, который отключает BB код только на конкретном сочетании символов при помощи тэга nobbc:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub ReplaceSmiles()
'
' ReplaceSmiles Макрос
'
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "('D?)"
        .Replacement.Text = "[nobbc]\1[/nobbc]"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = "('[)])"
        .Replacement.Text = "[nobbc]\1[/nobbc]"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub



Вопрос - можно ли упростить код, чтобы сразу все символы менял на [nobbc]\1[/nobbc] (где \1 - подстановочные знаки, искомый текст)
...
Рейтинг: 0 / 0
word замена нескольких символов
    #39394991
HB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HB
Гость
Вопрос - можно ли упростить код, чтобы сразу все символы менял на [nobbc]\1[/nobbc] (где \1 - подстановочные знаки, искомый текст)

Точнее:
Можно ли упростить код, чтобы сразу все сочетания символов менял на [nobbc]\1[/nobbc] (где \1 - подстановочные знаки, искомый текст)?
...
Рейтинг: 0 / 0
word замена нескольких символов
    #39394995
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
word замена нескольких символов
    #39395003
HB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HB
Гость
Пока решил таким образом:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub ReplaceSmiles()
'
' ReplaceSmiles Макрос
'
Dim test
test = Array("('D?)", "('[)])")
i = 1
For i = 0 To 1 Step 1 ' Цикл по всему массиву
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = test(i)
        .Replacement.Text = "[nobbc]\1[/nobbc]"
        .Forward = True
        .Wrap = wdFindContinue
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
Next i ' Увеличивает счетчик



Вроде работает... не знаю, насколько грамотное решение.
...
Рейтинг: 0 / 0
word замена нескольких символов
    #39395154
Фотография by-pass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HB,
а счетчик зачем?
...
Рейтинг: 0 / 0
word замена нескольких символов
    #39395164
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HB,

Важно, что работает.
Если будете добавлять еще элементы в массив поиска, то я бы заменил заголовок цикла на
Код: vbnet
1.
For i = 0 To UBound(test) 
...
Рейтинг: 0 / 0
word замена нескольких символов
    #39395213
HB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HB
Гость
by-passHB,
а счетчик зачем?

Для For

big-dukeЕсли будете добавлять еще элементы в массив поиска, то я бы заменил заголовок цикла на
Код: vbnet
1.
For i = 0 To UBound(test) 



Да, спасибо, так лучше будет!
...
Рейтинг: 0 / 0
word замена нескольких символов
    #39395988
Фотография Сын вождя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HB...чтобы сразу все...
Найти:
([:'`][DP\(\)])

Заменить и все остальное ваши.

А зачем знак "?" в строке: .Text = "('D?)"
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / word замена нескольких символов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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