Ну, я спросил, как проверить каждый файл #include
в файле. Может ли кто-нибудь дать мне пример, чтобы проверить, сколько #define
s находится от начала файла до конца?Подсчет числа '# define's в файле
Я пытался, но безуспешно.
Ну, я спросил, как проверить каждый файл #include
в файле. Может ли кто-нибудь дать мне пример, чтобы проверить, сколько #define
s находится от начала файла до конца?Подсчет числа '# define's в файле
Я пытался, но безуспешно.
На Linux/UNIX:
egrep -c "\#include|\#define" <filename>
Это даст вам количество вхождений обеих моделей в файле. Если вы хотите, отделенный:
grep -c \#include <filename>
дает кол #include
s
grep -c \#define <filename>
дает кол #define
s
grep \#include <filename>
дает все строки для #include
s
grep \#define <filename>
дает все строки для #defines
s
Если вы хотите быть фантазии и изощренными в Perl:
$include_count = 0;
$define_count = 0;
open SOURCE, $filename || die $!;
while(<SOURCE>)
{
next if(!~ /include/ && !~ /define/);
$line = $_;
$orig_line = $line;
$line =~ s/^\s+//g;
next if($line !~ /^#);
if($line =~ /include/)
{
$include_count++;
print "$orig_line";
}
if($line =~ /define/)
{
$define_count++;
print "$orig_line";
}
}
print "Define count $define_count . Include Count: $include_count\n";
Это быстрый и грязный сценарий, так что вы можете основывать свое решение на этом или записать его в Python/C/C++ или любой другой язык, который вам подходит.
Вы хотите проверить количество #defines в том же процессе или хотите прочитать исходный код из другого процесса - это не должно быть трудной задачей ..? –
Я имел в виду: например, у меня есть .pro-файл (файл проекта), в файле есть # define & # include. Я хочу прочитать этот файл и проверить, сколько там # include и # define. – Kazuma
Возможно, вы захотите опубликовать фрагмент файла .pro, чтобы ваша проблема была лучше понята. В противном случае это простое совпадение строк в Perl, например, на '/^\ s * #/&& (/ \ s * define/||/\ s * include)' where '\ s *' равно 0 или более пробелам. Выражение может быть неточным, но вы получаете идею. – Karlson