源码代码行数(空格数)
统计一个源码文件的代码行数:传入参数: 文件的路径返回: 三个元素的数组; 分别是总行数, 空行行数 和注释行数注意: 这段代码目前基本使用于 Java, C, C++; 因为这里注释部分处理的是以下三种:
1. // 行注释
2. 块注释
3.文件注释
完整代码:
#******************************************************************************
# NAME: get_codeline_count
# DESCRIPTION: get Files under a Folder
# ARGUMENTS: 1.Folder path
# AUTHOR: oscar999
#******************************************************************************
sub get_codeline_count{
my ($file_path) = @_;
my $total_lines = 0;
my $blank_lines = 0;
my $comment_lines = 0;
open FILE, $file_path or die "can't open file:$file_path reason=$!";
my $begSegComment = 0;
foreach my $file_line (
$file_line =~ s/\n//g;
$total_lines += 1;
if($begSegComment == 1)
$comment_lines += 1;
if($file_line =~ /[\S\s]*\*\/\s*/)
$begSegComment = 0;
}else{
if($file_line =~ /^\s*$/)
$blank_lines += 1;
}elsif($file_line =~ /\s*\/\/[\S\s]*/)
$comment_lines += 1;
}elsif($file_line =~ /\s*\/\*/)
$comment_lines += 1;
if($file_line =~ /\s*\/\*[\S\s]*\*\/\s*/)
}else{
$begSegComment = 1;
close FILE;
return ($total_lines, $blank_lines, $comment_lines);
这个是一个收费的软件,
也有免费版,但有限制, 一次只能统计 10 份文件。
下载地址:
http://codelinecounter.bistonesoft.com/clcperl.htm
下载之后进行安装
运行之后的界面如下:
2. CLOC
这个应该是使用的比较多的工具了。
它可以统计一个路径下各种类型文件的数量, 总的空格,代码,注释的数量。 它也可以统计一个压缩包里面的文件的状况
项目的介绍路径:
http://cloc.sourceforge.net/index.html#Basic_Use
下载路径是:
http://sourceforge.net/projects/cloc/files/cloc/v1.60/
这里提供 Perl 的源码以及打包后的exe 文件。
作为工具来说, 下载 .exe 文件。 目前最新版的文件名是 cloc-1.60.exe
使用方式就是在命令行模式上, 输入:
cloc-1.60.exe 文件路径或者压缩包名
输出的结果类似:
有的时候有这些需求:1. 统计一个文件的行数2. 统计一个源代码的有效行数。排除空行和注释行3. 统一一个目录下各种文件的数量和行数要达成这些需求,很多语言多可以做到, 但是使用Perl 应该是一个不错的选择
用法numlines = countlines(名称,选项)
输入- NAME:文件所在的文件夹名称或带有文件名的元胞数组(分别为 OPTION='dir' 和 'file') - 选项:'dir'(NAME 是一个文件夹)或 'file'(NAME 是一个文件或一组文件)
输出- NUMLINES:Nx2 元胞数组,其中 N 是文件数,第一列是文件名,第二列是行数
$filename = 'test.file';
$lines = 0;
open(FILE, $filename) or die "Can't open `$filename': $!";
while (sysread FILE, $buffer, 4096) {
$lines += ($buffer =~ tr/\n//)...
无论哪种编程语言,输入与输出都至关重要。个人感觉无论《Learning Perl》还是《Programming Perl》中,对输入与输出的讲解稍显随意,因此在这里整理相关要点,方便自己复习。
Perl语言中的输入与输出可以分成三类:从控制台输入或者输出;对文件进行输入或者输出操作;程序运行过程中输出报错或者警告信息。
来自控制台的输入与输出
读取标准输入
Perl语言中常用操作符<...
<br /> 通过文件中换行符号的个数来确定行数,使用fgets()和fgetc()函数<br />1.通过fgets()函数<br />...
while ( !feof(fp) )
if ( fgets(first_line, 128, fp) != NULL ) //读到一个换行符就会结束读取
lines++;
...<br /> <br /> fgets函数的调用形式如下:fgets(str,n,fp);此处,fp是文件指针;str是存
$file_path = 'xxx.txt'; //文件路径
$line = 0 ; //初始化行数
//打开文件 http://www.manongjc.com/article/1330.html
$fp...