如何解析VB6代码来计算方法LOC?

时间:2016-12-30 13:06:01

标签: c# python parsing vb6

我想尝试解析VB代码来分析一些函数/ subs。

您建议使用什么库或方法来解析VB代码?我的想法是计算它们并获得每个线的行数。 (我正在分析VB4,VB5和VB6文件)。我通常用C#和Python编写代码。

谢谢

2 个答案:

答案 0 :(得分:1)

vb6(https://www.google.com/search?q=vb6+count+lines+of+code)提供了大量的代码行计数应用程序。我已经使用了目前谷歌搜索(http://www.freevbcode.com/ShowCode.asp?ID=1975)上的第一个热门内容,它已经为我们的需求做了可靠的工作。

它按每个模块输出统计数据,这可能与您要查找的内容一致?例如:

Module Name:  mymodule.bas

           2,662  Total number of lines of code
           2,619  Miscellaneous lines of code
              21  Sub routine headings
               7  Function routine headings
               0  Property Let routine headings
               0  Property Get routine headings
               0  Property Set routine headings
               0  API Declare statements
              15  Constant variables
               0  Type Structures
               1  Auto generated lines (Not Included)
             363  Blank lines (Not Included)
           1,488  Comment lines (Not Included)

此应用程序附带的源代码(vb6),因此您也可以根据自己的需要进行增强。

答案 1 :(得分:0)

我终于遵循了@PanagiotisKanavos的建议。 我使用了像这样的正则表达式:

var regex = new Regex(@"(Private\s|Public\s)*(Function|Sub)+\s(\w+)(\s*)(\()", RegexOptions.IgnoreCase);

这个正则表达式非常有用,因为它避免了在VB3-6中导入库。 最后,计算代码行的方法是遵循" End Sub"或"结束功能"。我不知道VB3-6是否使用另一种方式来结束函数和方法。

我希望它对某些人有用。