如何通过Delphi IDE计算SLOC?

时间:2014-05-18 12:44:55

标签: delphi code-metrics code-statistics

你经常看到人们说他们有一百万行代码项目。这是怎么测量的?这个号码是“信息”菜单下显示的号码吗?手册说只计算可编辑行(因此,没有注释和空行):

  

源编译 - >显示已编译的总行数。

但是手册没有解释如何计算一段代码,如果/或/其他是:

if B=true
then 
   for i:= 0 to 100 
    do Stuff
else ;
  1. 每个有蓝点的行都是“编译行”吗?
  2. Embarcadero代码(RTL和VCL代码)和第三方库也包含在计数中?
  3. (结论)当有人说德尔福项目有100万行时,这是什么意思?

1 个答案:

答案 0 :(得分:4)

编译器告诉您的Total lines正在计算单元中的行数,而不管那些代码是什么(或不是代码)。它甚至算上空白行。开始一个新项目。编译它并记下它所说的行数(我说42)。然后,在某处添加一个换行符,然后再次编译。它将声称还有一行代码(43)。因此,编译器似乎没有考虑任何代码来考虑这个数字 - 只有实际的换行符。

实际上,如果在主窗体的单元(新项目)中添加行总数以及项目的主文件,它将比编译器告诉您的总数少2(42个中的40个)。所以除了粗略估计之外,我不相信这个数字意味着什么。

此计数中不包括VCL,RTL和Indy等库,因为这些库是预编译的。您的项目可能会引用需要编译的库或外部单元,因此它也会包含在计数中。

至于你提到它如何计算if..then..else块,请记住,你的5行代码只能组合成一行代码(剥离换行符),它仍然可以编译,并且编译器只计算1行,而不是5行。