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


    统计代码的行数?很神奇?哈哈其实是非常简单的!

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

     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         //将字符串以"
    "为分隔符,分隔成数组
    61         NSArray *array = [dress componentsSeparatedByString:@"
    "];
    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 }
    全身心修练iOS
  • 相关阅读:
    Theme.AppCompat.Light报错
    在Eclipse添加Android兼容包( v4、v7 appcompat )
    如何从Eclipse导入github上的项目源码
    一个C#多线程的工作队列
    是否需要手动执行DataContext的Dispose方法?
    Unity3d 销毁
    Unity3d 碰撞检测
    unity3d 鼠标事件
    Unity3d 刚体
    unity3d 让物体移动到点击位置
  • 原文地址:https://www.cnblogs.com/ZMiOS/p/4797707.html
Copyright © 2020-2023  润新知