powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с макросами в MS VC++ 2005
2 сообщений из 2, страница 1 из 1
Помогите с макросами в MS VC++ 2005
    #33927536
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я написал небольшой макрос для редактирования исходников,
перед его запуском я выделяю код, например такого содержания

Код: plaintext
1.
2.
3.
4.
5.
AlphaBlend(
	                      hDC,
				rcDst,
				rcSrc,
				nSCA
				);

а после прогонки макроса строка приобретает вид

Код: plaintext
AlphaBlend(hDC, rcDst,	rcSrc, nSCA);

вот макрос

Код: plaintext
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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
    Sub CodeCorrector()
        DTE.ExecuteCommand("Edit.Replace")
        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocumentSelection
        DTE.Find.MatchCase = False
        DTE.Find.MatchWholeWord = False
        DTE.Find.MatchInHiddenText = True
        DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
        DTE.Find.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
        DTE.Find.Action = vsFindAction.vsFindActionReplaceAll
        DTE.Find.FindWhat = vbCrLf
        DTE.Find.ReplaceWith = ""
        DTE.Find.Execute()
        DTE.ActiveDocument.Selection.SwapAnchor()
        DTE.ActiveDocument.Selection.SelectLine()

//???? здесь надо посчитать количество vbTab перед началом строки кода 

        DTE.Find.FindWhat = vbTab
        DTE.Find.ReplaceWith = ""
        DTE.Find.Execute()

// после этой команды удаляются табы и те которые спереди, но они мне нужны
// иначе приходится выравнивать руками, а это очень долго
       
        DTE.Find.FindWhat = ","
        DTE.Find.ReplaceWith = ", "
        DTE.Find.Execute()
        DTE.Find.FindWhat = "|| "
        DTE.Find.ReplaceWith = " || "
        DTE.Find.Execute()
        DTE.Find.FindWhat = "&& "
        DTE.Find.ReplaceWith = " && "
        DTE.Find.Execute()
        DTE.ActiveDocument.Selection.CharLeft(False,  1 )

//???? здесь надо восстановить их количество в цикле с помощью         
// DTE.ActiveDocument.Selection.Indent()

        DTE.Windows.Item("{CF2DDC32-8CAD-11D2-9302-005345000000}").Close()
        DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument
    End Sub
кто-нибудь знает как это реализовать или может это можно обойти по другому.
Спасибо!
--------------------------------------------------------------
...
Рейтинг: 0 / 0
Помогите с макросами в MS VC++ 2005
    #33928680
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скажите хотя бы как выделить текст от одной произвольной позиции до другой скриптом

--------------------------------------------------------------
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с макросами в MS VC++ 2005
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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