凑热闹,Share自己写的另一个小工具--代码统计器。

  看了边城浪子提供的代码统计工具,不禁让我想起了,今年夏天写的一个类似的小工具。当时,是应一个朋友的要求写的,后来被他用于象老板证明自己的工作量了,完全出乎我的意料
截图如下:


功能:
1.
 通过配置修改配置文件,可以提供一定程度上的扩展性。(稍后会给出相应的Xml文件说明)
2.
 支持将统计结果生成RTF文件和PDF文件。(因为当时时间的原因,未提供生成HTML的功能)
3.
 支持对整个目录进行统计,同样的,不支持对单个文件的统计。因为,个人认为,对单个文件是没有必要进行代码行数统计的。

缺陷:
1.
 因为当时写这个小工具时,是用VS.Net 2002,没有选择整个目录的控件,所以,自己写了一个,写得不是很好,可能会存在一些问题。
2.
 这个工具在转入选定目录结构和分析计算时,对多线程的支持不是太好,这和当然自己在这方面的能力不强有关系。
如果有时间,且这个工具的确有点作用的话,我会把考虑它重新完善一下的。

注:此工具的PDF生成功能依赖于ITextSharp开源组件。

下面,介绍一下配置文件的结构。
<Configurations>
  <Languages>
    <Language type="CSharp">
   <!--
文件类型(即扩展名列表) -->
      <FileType>cs;aspx.cs;asmx.cs</FileType>
      <WrapSign isCounted="1">;</WrapSign>
      <Signature pair="0">///</Signature>
      <Signature pair="1">/*|*/</Signature>
      <Signature pair="0">//</Signature>
    </Language>
    <Language type="Delphi">
      <FileType>pas</FileType>
      <Signature pair="0">//</Signature>
      <Signature pair="1">(*|*)</Signature>
    </Language>
    <Language type="VB">
      <FileType>frm;bas;ctl;cls</FileType>
      <WrapSign isCounted="0"> _</WrapSign>
      <Signature pair="0">'</Signature>
    </Language>
    <Language type="C">
      <FileType>c;h;cpp</FileType>
      <WrapSign isCounted="1">;</WrapSign>
      <Signature pair="0">//</Signature>
      <Signature pair="1">/*|*/</Signature>
    </Language>
    <Language type="Javascript">
      <FileType>js</FileType>
      <Signature pair="0">//</Signature>
      <Signature pair="1">/*|*/</Signature>
    </Language>
  </Languages>
  <UI>
    <Options>
      <OptionItem id="IsRecursive" desc="
是否递归目录">1</OptionItem>
      <OptionItem id="IsAutoExpandAllNodes" desc="
是否自动展开所有的节点">1</OptionItem>
    </Options>
  </UI>
</Configurations>
上面,是此工具依赖的配置文件Config.xml的结构。很明显,Language元素定义的是一种编程语言被解析时的相关信息。相信,大家都可以看得懂。如果需要让这个工具对一种新语言予以支持的话,只要加一个Language元素,同时定义相关子元素就可以了。请注意UI元素中的内容不要自行修改,因为它是由程序进行控制。当然,你真的要改,我也没有办法。

下载地址:download   (终于上传成功了。看来家里的网络有点儿问题。)

 

posted @ 2004-12-22 23:10  寒星  阅读(2323)  评论(12编辑  收藏  举报