Вы можете использовать QMessageBox :: about для простых диалогов, или написать свой собственный подкласс QDialog, если вам нужно что-то более особенное / необычное.
Вот однострочник Perl, который должен делать то, что вы хотите.
perl -pi.bak -e 'BEGIN { undef $/; } s/\s*?(\s?\/\/.*)?\r?\n\s*{/ {\1/g; s/}(\s?\/\/.*)?\r?\n\s*else\b(.*)/} else\2\1/g;'
Он превращает это:
int main(int argc, char *argv[])
{
int something = 0;
if (something) // 5-12-2007
{
printf("Hi!\n");
}
else // 5-13-2007
{
printf("Bye\n");
}
return 0;
}
в это:
int main(int argc, char *argv[]) {
int something = 0;
if (something) { // 5-12-2007
printf("Hi!\n");
} else { // 5-13-2007
printf("Bye\n");
}
return 0;
}
Вам действительно стоит подумать дважды, а возможно и трижды, прежде чем делать это. Это полностью уничтожит историю изменений вашей системы управления исходным кодом в момент изменения. Вы используете систему контроля исходного кода, не так ли?
Команда UNIX Indent ( http://en.wikipedia.org/wiki/Indent_ (Unix) ) (доступна для ПК от GNU) имеет миллион вариантов для настройте форматирование так, как вам нравится.
Раньше я решал подобные проблемы, сначала запуская какой-нибудь инструмент, например astyle, чтобы сделать 95% того, что мы хотели, а затем писал скрипт Perl или Python поверх результата, чтобы закончить оставшиеся 5%. Попробуйте, всегда полезно знать свои регулярные выражения. :)
Разве не справиться с задачей, набитая простыми регулярными выражениями? Например (\). ? \ N. ? \ {) -> (\) \ {), чтобы удалить пробел между закрывающей скобкой и открывающейся фигурной скобкой.
perl -ei '$/=undef;while(<>){s/}\s*?(\s*\/\/^[\r\n]*)?\r?\n\s*else/} else$1/gm;s/(\s*\/\/[^\r\n]*)?\r?\n\s*{/ {$1/gm;print;}' yoursourcefile.cpp
Это сначала изменяет }
на } else
, затем удаляет конец строки из
.
Чтобы применить это к дереву исходных текстов, используйте find
и xargs
:
find . -name \*.cpp -print0 | xargs -0 perl -ei '$/=undef;while(<>){s/}\s*?(\s*\/\/^[\r\n]*)?\r?\n\s*else/} else$1/gm;s/(\s*\/\/[^\r\n]*)?\r?\n\s*{/ {$1/gm;print;}'