0 / 0 / 0
Регистрация: 26.05.2012
Сообщений: 12
1

Найти необходимые символы в коде и исправить их оформление

26.05.2012, 22:25. Показов 437. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В общем, нужно сделать макрос для Visual Studio 2008\2010, который при сохранении менял стиль коддинга (при помощи регулярных выражений)
Например, проставлял пробелы так, как они должны быть по задумке:
bad (как есть):
a=5;
b= 6;
good (как должно стать при сохранении):
a = 5;
b = 6;
Для этого необходимо искать в коде необходимые символы и смотреть есть ли возле них пробелы, если нет то добавлять, если есть лишние, то убирать эти лишние пробелы.. НО! с одиночными знаками все хорошо получается (=, +, -, | и тд), а вот с парными знаками (==, ++, --, || и тд) не получается
Фрагмент кода для поиска и исправления оформления "=":

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'''''   находим знак равенства и с обеих сторон добавляем по пробелу   ''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                     "=", _
                     vsFindOptions.vsFindOptionsRegularExpression, _
                     " = ", _
                     vsFindTarget.vsFindTargetCurrentDocument, , , _
                     vsFindResultsLocation.vsFindResultsNone)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''       убираем лишние пробелы возле =, оставляем по одному пробелу       ''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DTE.Find.FindReplace(vsFindAction.vsFindActionReplaceAll, _
                     "{[:b]+}+=+{[:b]+}", _
                     vsFindOptions.vsFindOptionsRegularExpression, _
                     " = ", _
                     vsFindTarget.vsFindTargetCurrentDocument, , , _
                     vsFindResultsLocation.vsFindResultsNone)
Для одного знака равенства все нормально, но для "==" этот алгоритм уже не катит.. Как можно сделать по-другому?

Добавлено через 8 минут
так как с помощью регулярных выражений необходимо все это сделать, то нужен алгоритм этой простой задачки.. если на словах объяснить, то все это нужно сделать с помощью двух действий - 1) "найти A" 2) "Заменить А на B". Пример:

код:
a=5;
b= 6;
c = 4;
нужно чтобы стало:
a = 5;
b = 6;
c = 4;

По моему алгоритму делаем так - находим "=", меняем его на " = " (с пробелами с обеих сторон), затем снова находим "=" и все пробелы рядом с ним (с помощью регулярных выражений это легко) и меняем на " = " (с пробелами с обеих сторон).. Для одного "=" все хорошо работает, но когда добавляется еще "==", то алгоритм для "=" мешает алгоритму для "==" и в итоге получается:
код:
a=5;
b= 6;
c = 4;
d==7;
получается:
a = 5;
b = 6;
c = 4;
d = = 7;

В последней строчке вместо " == " получается " = = "

Добавлено через 25 минут
вроде как сделал... алгоритм правда замудреный)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.05.2012, 22:25
Ответы с готовыми решениями:

Напечатать все символы, входящие в заданную строку, в алфавитном порядке (найти и исправить ошибки в коде)
Подскажите пожалуйста, что надо сделать для того, что бы буквы, которые уже встречаются в строке не...

Оформление списка в виде структуры, исправить ошибку в коде
Здравствуйте, есть проблема, нужно оформить список в виде структуры, но вот есть ошибка в строке,...

не удаляет необходимые символы из строки
Здравствуйте,у меня задача такая: в строке найти цифры и вывести их через запятую.В моем коде какая...

Как пропустить необходимые символы в textBox?
Подскажите, как пропустить символы дроби и точки? В примере проверяется `textBox1`на наличие цифр,...

0
26.05.2012, 22:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2012, 22:25
Помогаю со студенческими работами здесь

Найти сумму целых отрицательных чисел удовлетворяющих условию (найти и исправить ошибку в коде)
#include<iostream> #include<math.h> using namespace std; int main() { int y = 0; ...

Найти и исправить ошибки в коде
исправьте ошибку в программе учитель сказал что одной строчки вроде бы не хватает или функции или...

Найти и исправить ошибки в коде
#include <iostream> #include <math.h> #define _USE_MATH_DEFINES double sqrt(double x); ...

Найти и исправить ошибки в коде
program Kalyn_lab4_1 ; const x=3.241; var y,a:real ; begin a:=1.15;

Найти и исправить ошибки в коде
#include <stdio.h> #include <conio.h> #include <string.h> #include <time.h> struct stadiums{...

Найти и исправить ошибку в коде
Вроде бы сделал все правильно, но она все равно не хочет работать. #include "stdafx.h" #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru