代码统计系统及方法

文档序号:6472357阅读:198来源:国知局
专利名称:代码统计系统及方法
技术领域
本发明涉及一种代码统计系统及方法。
背景技术
在日常工作和生活中,经常需要对代码的数量及变动进行统计。
比如在IT研发类工作中,对代码的统计尤其重要,因为这类工作的产出是代码,对代 码的行数、质量、修订等进行统计能全面反映出员工的工作质量、效率及工作成果。
目前,传统的方法是将要统计的文件一一打开,然后手动统计代码的行数。如此,非常 浪费时间,统计效率极低,而且很容易出错。

发明内容
鉴于以上内容,有必要提供一种代码统计系统,其能够快速方便地对代码进行统计。 鉴于以上内容,还有必要提供一种代码统计方法,其能够快速方便地对代码进行统计。 一种代码统计系统,该系统包括主机和数据库,该数据库存储有待统计的文件或文件夹 ,所述的主机包括选择模块,用于从数据库中选择要统计的文件或者文件夹;确定模块, 用于确定上述选择的文件或文件夹中全部文件的类型;统计模块,用于根据确定的文件的类 型,统计文件或者文件夹中代码总行数、空行数;检测模块,用于检测所述文件或者文件夹 是否存在最近版本;所述的统计模块还用于当检测到所述文件或者文件夹存在最近版本时, 将该文件或文件夹与其最近版本进行对比,以统计该文件或文件夹中代码的新增行数、删除 行数及修改行数;存储模块,用于按照命名规则将当前文件或文件夹的内容以新名称备份到 数据库中。
一种代码统计方法,该方法包括以下步骤(a)选择需要统计的文件或者文件夹;( b)确定上述选择的文件或文件夹中全部文件的类型;(C)根据确定的文件的类型,统计文 件或者文件夹中代码总行数、空行数;(d)检测所述文件或者文件夹是否存在最近版本;
(e)当检测到所述文件或者文件夹存在最近版本时,将该文件或文件夹与其最近版本进行 对比,以统计该文件或文件夹中代码的新增行数、删除行数及修改行数;(f)按照命名规 则将当前文件或文件夹的内容以新名称备份到数据库中。
所述代码统计系统及方法,能够快速方便地对代码进行统计。因而,可以有效地节约统 计时间,提高统计效率,并且保证统计结果的准确性。


图1是本发明代码统计系统较佳实施例的硬件架构图。 图2是图1中主机的功能模块图。
图3是本发明代码统计方法较佳实施例的作业流程图。
图4是本发明以报表方式呈现统计信息的示意图。
具体实施例方式
参阅图1所示,是本发明代码统计系统较佳实施例的硬件架构图。该系统的硬件架构主 要包括输入装置(包括键盘12以及鼠标14)、显示器16、主机10以及数据库18。
其中,显示器16用于提供图形化用户界面(Graphic User Interface, GUI)。
主机IO可以是IBM架构的计算机(IBM Personal Computer, IBM PC) 、 Apple公司的Mac PC、个人计算机、网络服务器,还可以是任意其它适用的计算机。
数据库18负责存储命名规则、需要统计的文件或文件夹、按照命名规则备份的文件或文 件夹、对所述文件或文件夹的统计信息。所述命名规则为第l次备份文件或文件夹以"文 件或文件夹的原名称1.0"命名,第2次备份文件或文件夹以"文件或文件夹的原名称2.0" 命名……依此类推。
参阅图2示,是图l中主机的功能模块图。本发明所称的模块是完成特定功能的计算机程 序段,比程序更适合于描述软件在计算机中的执行过程,因此本发明对软件的描述都以模块 描述。
所述主机10包括选择模块301、确定模块303、统计模块304、检测模块305、存储模块 306及显示模块307。
所述选择模块301用于从数据库18中选择需要统计的文件或者文件夹。
所述确定模块303用于确定上述选择的文件或文件夹中全部文件的类型。如果选择模块 301选择的为文件夹,则确定模块303首先分析上述选择的文件夹的目录结构,利用递归方式 全部遍历该文件夹中的子文件夹及文件,得到该文件夹中的全部文件,以确定该文件夹中的 全部文件的类型。因不同类型的文件的存储方式不同,故本较佳实施例通过文件名后缀来一 一确定文件的类型。所述文件的类型包括txt文件、pdf文件、word文件、C文件、0++文件 、Java文件、Pascal文件。因所述文件的类型包括txt文件、pdf文件、word文件等文本文件 ,故该代码统计系统是将文字作为一种代码进行统计的。
所述统计模块304用于根据确定的文件的类型,对文件中代码进行统计,以得到选择的 文件或者文件夹中代码总行数、空行数等。具体而言,若选择模块301选择的为文件,则统计模块304根据确定的文件类型,调用API函数对该文件中代码总行数、空行数等进行统计; 若选择模块301选择的为文件夹,则统计模块304根据该文件夹中每个文件的类型,调用API 函数统计所述文件中代码总行数、空行数,而后将得到的每个文件的代码总行数、空行数进 行加总,以得到该文件夹中代码总行数、空行数。
所述检测模块305用于检测所述文件或者文件夹是否存在最近版本。具体而言,检测模 块305首先按照所述文件或者文件夹的当前名称,在数据库18中进行査询,以找到包含有所 述当前名称的所有文件或文件夹;而后根据命名规则对比査询到的文件或者文件夹的名称, 以得到所述文件或者文件夹的最近版本。例如,假设所述文件的当前名称为"a卯",则检 测模块305在数据库18中査找名称中包含"a卯"的所有文件,假如得到3个名称中包含" app"的文件"appl.O"、 "app2.0"、 "app3. 0",而后检测模块305根据命名规则得到 该文件的最近版本"app3.0"。
所述统计模块304还用于当检测到所述文件或者文件夹存在最近版本时,将该文件或文 件夹与其最近版本进行对比,从而得到该文件或文件夹中代码的新增行数、删除行数及修改 行数。
所述存储模块306用于按照命名规则将所述文件或文件夹的内容以新名称备份到数据库 18中。假设,检测得到文件"卿"的最近版本为"卿3.0",则存储模块306将所述文件" a卯"以"卿4.0"命名并保存至数据库18中。
所述统计模块304还用于对代码进行重复性统计,以统计其重复行数。在本较佳实施例 中,若选择模块301选择的为文件,则统计模块304统计该文件本身的重复行数,具体步骤为 :依次取该文件代码的连续3行(第l次为l-3行,第2次为2-4行,依此类推),与该文件的 全部代码进行比对;若选择模块301选择的为文件夹,则统计模块304将该文件夹中的所有文 件两两比对,统计该文件夹的重复行数,其中将文件进行两两比对的具体步骤为依次取该 文件夹中第一个文件代码连续3行(第l次为l-3行,第2次为2-4行,依此类推),与该文件 夹中第二个文件代码进行比对。
所述显示模块307用于将上述统计信息保存至数据库18,以便于后续査看或参考。所述 统计信息包括代码总行数、空行数、新增行数、删除行数、修改行数及重复行数。所述显 示模块307还用于将所述统计信息以报表(请参考图4)或者图形的方式直观地呈现给用户。 参阅图3所示,是本发明代码统计方法较佳实施例的作业流程图。 步骤S401,选择模块301从数据库18中选择需要统计的文件或者文件夹。 步骤S403,确定模块303确定上述选择的文件或文件夹中全部文件的类型。如果步骤S401选择的为文件夹,则确定模块303首先分析上述选择的文件夹的目录结构,利用递归方 式全部遍历该文件夹中的子文件夹及文件,得到该文件夹中的全部文件,以确定该文件夹中 的全部文件的类型。因不同类型的文件的存储方式不同,故本较佳实施例通过文件名后缀来 一一确定文件的类型。所述文件的类型包括txt文件、pdf文件、word文件、C文件、0++文 件、Java文件、Pascal文件。因所述文件的类型包括txt文件、pdf文件、word文件等文本文 件,故该代码统计方法是将文字作为一种代码进行统计的。
步骤S404,统计模块304根据确定的文件的类型,对文件中代码进行统计,以得到步骤 S401中选择的文件或者文件夹中代码总行数、空行数等。具体而言,若步骤S401选择的为文 件,则统计模块304根据确定的文件类型,调用API函数对该文件中代码总行数、空行数等进 行统计;若步骤S401选择的为文件夹,则统计模块304根据该文件夹中每个文件的类型,调 用API函数统计所述文件中代码总行数、空行数,而后将得到的每个文件的代码总行数、空 行数进行加总,以得到该文件夹中代码总行数、空行数。
步骤S405,检测模块305检测所述文件或者文件夹是否存在最近版本。具体而言,检测 模块305首先按照所述文件或者文件夹的当前名称,在数据库18中进行査询,以找到包含有 所述当前名称的所有文件或文件夹;而后根据命名规则对比査询到的文件或者文件夹的名称 ,以得到所述文件或者文件夹的最近版本。若经过检测所述文件或者文件夹不存在最近版本 ,则直接进入步骤S407。例如,假设所述文件的当前名称为"a卯",则检测模块305在数据 库18中査找名称中包含"app"的所有文件,假如得到3个名称中包含"app"的文件" appl.O"、 "app2.0"、 "app3.0",而后检测模块305根据命名规则得到该文件的最近版 本"卿3. 0"。
若经过检测所述文件或者文件夹存在最近版本,则进入步骤S406,统计模块304将该文 件或文件夹与其最近版本进行对比,从而得到该文件或文件夹中代码的新增行数、删除行数 及修改行数。
步骤S407,存储模块306按照命名规则将所述文件或文件夹的内容以新名称备份到数据 库18中。假设,检测得到文件"卿"的最近版本为"卿3.0",则存储模块306将所述文件 "卿"以"卿4.0"命名并保存至数据库18中。
步骤S408,统计模块304对代码进行重复性统计,以统计其重复行数。在本较佳实施例 中,若步骤S401选择的为文件,则统计模块304统计该文件本身的重复行数,具体步骤为 依次取该文件代码的连续3行(第l次为l-3行,第2次为2-4行,依此类推),与该文件的全 部代码进行比对;若步骤S401选择的为文件夹,则统计模块304将该文件夹中的所有文件两两比对,统计该文件夹的重复行数,其中将文件进行两两比对的具体步骤为依次取该文件 夹中第一个文件代码连续3行(第l次为l-3行,第2次为2-4行,依此类推),与该文件夹中 第二个文件代码进行比对。
步骤S409,显示模块307将上述统计信息保存至数据库18,以便于后续査看或参考。所 述统计信息包括代码总行数、空行数、新增行数、删除行数、修改行数及重复行数。而后 显示模块307将所述统计信息以报表(请参考图4)或者图形的方式直观地呈现给用户。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实 施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案 进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
权利要求
1.一种代码统计系统,该系统包括主机和数据库,该数据库存储有待统计的文件或文件夹,其特征在于,所述的主机包括选择模块,用于从数据库中选择要统计的文件或者文件夹;确定模块,用于确定上述选择的文件或文件夹中全部文件的类型;统计模块,用于根据确定的文件的类型,统计文件或者文件夹中代码总行数、空行数;检测模块,用于检测所述文件或者文件夹是否存在最近版本;所述的统计模块还用于当检测到所述文件或者文件夹存在最近版本时,将该文件或文件夹与其最近版本进行对比,以统计该文件或文件夹中代码的新增行数、删除行数及修改行数;存储模块,用于按照命名规则将当前文件或文件夹的内容以新名称备份到数据库中。
2.如权利要求l所述的代码统计系统,其特征在于,所述的统计模块 还用于统计代码的重复行数。
3.如权利要求l所述的代码统计方法,其特征在于,所述文件的类型 包括txt文件、pdf文件、word文件、C文件、0++文件、Java文件、Pascal文件。
4.如权利要求1或2或3所述的代码统计系统,其特征在于,所述的主 机还包括显示模块,用于将统计信息保存至数据库,并呈现给用户。
5.如权利要求4所述的代码统计方法,其特征在于,所述统计信息包 括代码总行数、空行数、新增行数、删除行数、修改行数及重复行数。
6. 一种代码统计方法,该方法包括如下步骤 选择需要统计的文件或者文件夹; 确定上述选择的文件或文件夹中全部文件的类型;根据确定的文件的类型,统计文件或者文件夹中代码总行数、空行数; 检测所述文件或者文件夹是否存在最近版本;当检测到所述文件或者文件夹存在最近版本时,将该文件或文件夹与其最近版本进行 对比,以统计该文件或文件夹中代码的新增行数、删除行数及修改行数; 按照命名规则将当前文件或文件夹的内容以新名称备份到数据库中。
7 如权利要求6所述的代码统计方法,其特征在于,该方法还包括步骤统计代码的重复行数。
8 如权利要求6所述的代码统计方法,其特征在于,所述文件的类型 包括txt文件、pdf文件、word文件、C文件、0++文件、Java文件、Pascal文件。
9 如权利要求6或7或8所述的代码统计方法,其特征在于,该方法还包括步骤将统计信息保存至数据库,并呈现给用户。
10 如权利要求9所述的代码统计方法,其特征在于,所述统计信息 包括代码总行数、空行数、新增行数、删除行数、修改行数及重复行数。
全文摘要
本发明提供一种代码统计方法,该方法包括步骤选择需要统计的文件或者文件夹;确定上述选择的文件或文件夹中全部文件的类型;根据确定的文件的类型,统计文件或者文件夹中代码总行数、空行数;检测所述文件或者文件夹是否存在最近版本;当检测到所述文件或者文件夹存在最近版本时,将该文件或文件夹与其最近版本进行对比,以统计该文件或文件夹中代码的新增行数、删除行数及修改行数;按照命名规则将当前文件或文件夹的内容以新名称备份到数据库中。本发明还提供一种代码统计系统。利用该代码统计系统及方法,能够快速方便地对代码进行统计。
文档编号G06F17/30GK101582072SQ200810301599
公开日2009年11月18日 申请日期2008年5月16日 优先权日2008年5月16日
发明者常小军 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1