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

Код: 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
18.08.2006, 15:35
    #33928680
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с макросами в MS VC++ 2005
скажите хотя бы как выделить текст от одной произвольной позиции до другой скриптом

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


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