源码代码行数(空格数)

统计一个源码文件的代码行数:传入参数: 文件的路径返回: 三个元素的数组; 分别是总行数, 空行行数 和注释行数注意: 这段代码目前基本使用于 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...