统计代码行数的实现(不包括空行)

具体代码如下,代码中已经标注注释,如果需要测试自己的代码量只需要将文中的"需要测试代码的地址"改为自己的地址即可:

 1 //
 2 //  main.m
 3 //  111
 4 //
 5 //  Created by 孙泽明 on 15/9/8.
 6 //  Copyright (c) 2015年 孙泽明. All rights reserved.
 7 //
 8
 9 #import <Foundation/Foundation.h>
10
11 NSUInteger ZMsumdm(NSString *path)
12 {
13
14     NSFileManager *ZMmanger = [NSFileManager defaultManager];
15
16     BOOL ZMyes = NO;
17     //判断文件路径是否存在,如果存在yn返回yes,如果不存在yn返回no,
18     //&yes值是判断路径所指的是文件还是文件夹,如果是文件夹值为yes,如果是文件返回值为no
19     BOOL ZMyn = [ZMmanger fileExistsAtPath:path isDirectory:&ZMyes];
20
21     //如果这个路径不存在结束程序
22     if (!ZMyn) return 0;
23
24     //如果这个路径存在,并且判断是一个文件夹
25     if (ZMyes) {
26         //这是一个文件夹
27         //返回文件夹里的所有内容,返回值为数组
28         NSArray *array = [ZMmanger contentsOfDirectoryAtPath:path error:nil];
29 //        NSLog(@"%@",array);
30
31         int ZMcount = 0;
32         for (NSString *fileName in array) {
33
34             //拿到全路径
35             NSString *fullPath = [NSString stringWithFormat:@"%@/%@",path,fileName];
36 //            NSLog(@"%@",fullPath);
37
38             ZMcount += ZMsumdm(fullPath);
39
40         }
41         NSLog(@"count:%zd",ZMcount);
42         return ZMcount;
43
44     }
45     else{
46         int zs =0;
47
48         //这是一个文件
49
50         //判断文件的扩展名为.h/.m/.c的文件才计算行数
51
52         //拿到路径所指文件扩展名,并转换成小写(lowercaseString这个方法可以将字母转换成小写)
53         NSString *ZMkzm = [[path pathExtension]lowercaseString];
54
55         if (![ZMkzm isEqualToString:@"m"]&&![ZMkzm isEqualToString:@"h"]&&![ZMkzm isEqualToString:@"c"]) return 0;
56
57
58         //加载文件内容(把文件里的内容全部转换成了字符串)
59         NSString *dress = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
60         //将字符串以"\n"为分隔符,分隔成数组
61         NSArray *array = [dress componentsSeparatedByString:@"\n"];
62
63         //把path中@"/Users/sunzeming/Desktop/"这段字符串替换为空
64         NSRange range =[path rangeOfString:@"/Users/sunzeming/Desktop/"];
65         NSString *thPath =[path stringByReplacingCharactersInRange:range withString:@""];
66         NSLog(@"文件路径:%@,代码的行数为:%zd",thPath,array.count);
67         //去除代码中为空行的代码数
68          int ZMsjdms=0;
69         for (NSString *arr in array) {
70                NSLog(@"%@",arr);
71             if ([arr isEqualToString:@""]) {
72
73                 ZMsjdms +=1;
74                 zs = ZMsjdms;
75
76             }
77         }
78         return array.count-zs;
79
80     }
81
82 }
83
84
85 int main(){
86
87     NSUInteger count = ZMsumdm(@"需要测试代码的地址");
88
89     NSLog(@"您所查找的文件的代码行数一共为:%zd",count);
90
91     return 0;
92
93 }
时间: 2024-10-06 17:21:25

统计代码行数的实现(不包括空行)的相关文章

Python学习教程:如何用python统计代码行数

Python学习教程:如何用python统计代码行数 改良后的代码可以对python和C系列的代码实行行数计算,包括代码.空行和注释行,用re抓取注释,传入一个目录自动对其下的文件进行读取计算 流程 首先判断传入参数是否为文件夹,不是则打印出提示,否则继续(无返回),获得目录后,yongos.listdir对路径下文件进行遍历,其中也包含文件夹,再次判断是否为文件夹,是的话则递归调用此函数,否则开始执行行数统计,这里用os.path.join将路径与文件名进行拼接,方便之后直接传给函数,逻辑很简

Visual Studio统计代码行数

Visual Studio统计代码行数 按[Ctrl+Shift+F]弹出查找窗口(不统计以#号开头.以/开头的代码和空行) 1.输入  :b*[^:b#/]+.*$ 2.选择使用正则表达式 3.查找文件类型,*.cs多种类型用分号(;)隔开 点击查找全部(查找结果如下)

VS统计代码行数 CTRL+SHIFT+F

1.CTRL+SHIFT+F (Find in files),打开查找功能(如果打不开查看本文最后)2. 勾选 使用:正则表达式,3. 搜索内容: ^:b*[^:b#/]+.*$ #开头和/开头或者空行都不计入代码量. ^:b*[^:b#/*]+.*$ *开头和#开头和/开头或者空行都不计入代码量. 4. 最后一行就是代码行数了. 匹配行:    匹配文件:    合计搜索文件: ----------------------------------------------------------

[转]Linux统计代码行数

wc -l *.c *.h 就可以知道当前目录下的所有c 和 h 文件的行数的详细信息.很不错 如果要递归,可以配合其他命令一起使用 当前目录及子目录: find . -name *.c |xargs wc -l find . -name *.cpp | xargs wc -l find . -name *.h |xargs wc -l 想一下子 ,或许简单的可以 使用重定向技术 使用 find -name "*.c">/tmp/file.list ;find -name &qu

【Linux】常用命令-统计代码行数

公司人员流动大,经常有新的维护任务,交接时喜欢看看新来的模块的代码量,那么问题来了, 如何统计代码行数? 1,最先想到的肯定是 wc. wc -l *.h 将查看[当前目录]下头文件的代码行数,输出结果如下: [groot]$wc -l *.h 54 consts.h 60 crc32.h 169 crypt.h 301 ebcdic.h 443 globals.h 39 inflate.h 81 timezone.h 227 ttyio.h 722 unzip.h 3123 unzpriv.h

一个统计代码行数的简单方法

安装Git, 到项目目录下右击->Git Bash, 输入命令: find . -name "*.cs" | xargs wc -l 效果如下, 还是挺简便的. 一个统计代码行数的简单方法,布布扣,bubuko.com

使用VS2010统计代码行数

代码行数统计 VS2010中本身集成了非常强大的查找功能,使用正则表达式可以非常快捷.准确的统计代码行数. 统计代码行数所用正则表达式: "^:b*[^:b#/]+.*$" 通过查找的功能选项还可以限定查找的文件类型,进而对指定范围的文件进行统计. 其中"#开头和/开头或者空行"都没有计入代码量,但是这个规则也不是特别严格,对于下面的情况不适用: /*xxxxxx *xxxxxxx *xxxxxxx *xxxxxxx*/ 总的来说大体上可以估计出代码的规模.

统计代码行数

由于工作中的某种需要(你懂的)需要统计一下当前解决方案中的代码的行数,由于文件数比较多,手动不现实.可以采用一种变通的方式来进行统计.我使用的是VS2015,不过VS2003到VS2015应该都是可以的.VS统计代码行数Ctrl + Shift + F 1.查找内容填入: b*[^:b#/]+.*$ 2.查找范围选择:整个解决方案.3.查找选项选择:使用正则表达式.4.最后点击[查找全部]搜索结果如下,总行数就是15783行. #开头和/开头或者空行都不计入代码量.如果需要只统计代码文件的代码量

如何统计代码行数

如何统计代码行数 linux下提供了很多实用工具,甚至在安卓上,都有移植的busybox包含这些工具. 根据KISS理念,这些工具的功能很单一.但这些工具组合起来,就可以很方面的统计代码量了. 统计代码行数 流程为:首先使用find命令找到所有后缀名符合规则的源代码文件,之后使用wc命令统计行数.文件数可能过多,为防止出错使用xargs命令分割参数列表,最后得到的结果可以使用sort排序 统计所有c源代码行数的命令:find -name *.c | xargs wc -l |sort -r.结果