第十七篇:计算代码行数练习代码

用到Foundation中的一些类:

NSManager

NSString

NSArray

//
//  main.m
//  10-计算代码行数
//
//  Created by xxx on 15/9/16.
//  Copyright (c) 2015年 itcast. All rights reserved.
//

#import <Foundation/Foundation.h>

int countLineOfFile(NSString * path){
    // 获得文件管理者
    NSFileManager * manager = [NSFileManager defaultManager];
    // 判断path是不是一个可计算的文件的路径
    BOOL  isFile = NO;
    BOOL exist = [manager fileExistsAtPath:path isDirectory:&isFile];
    if (!exist) { // path的文件路径不存在
        return 0;
    }
    // 如果路径存在
    if (isFile) { // path 下的路径是文件夹
        // 获得当前文件夹下的所有内容:文件夹及文件
        NSArray * fileArray = [manager contentsOfDirectoryAtPath:path error:nil];
        int count = 0;
        // 查看所有的文件和文件夹
        for ( NSString * file in fileArray) {
            count += countLineOfFile([NSString stringWithFormat:@"%@/%@",path,file]);
        }

        return count ;
    }
    else{
        // 获得文件的扩展名
        NSString * extension = [path pathExtension];
        if(!([extension isEqualToString:@"h"]
             || [extension isEqualToString:@"m"]
             || [extension isEqualToString:@"c"]
             || [extension isEqualToString:@"cpp"]))
            return 0;
        // 获得文件路径为path的文件中所有内容
        NSString * fileConten = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
        // 一个字符串用'\n'来划分成多个字符串,即每一行作为一个字符串
        NSArray * array = [fileConten componentsSeparatedByString:@"\n"];

//        for(NSString * str in array)
//            NSLog(@"%@",str);

        return (int)array.count ;
    }
}

int main(int argc, const char * argv[]) {

    // 统计一个文件或文件夹中的代码行数,包括空行
    int count = countLineOfFile(@"/Users/qujie/Documents/OC程序/10-计算代码行数");
    NSLog(@"count = %d",count);

//    NSString * str = @"123-456-789";
//    NSArray * array = [str componentsSeparatedByString:@"-"];
//    NSLog(@"%@",array);
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 17:21:17

第十七篇:计算代码行数练习代码的相关文章

eclipse中统计代码行数或代码量

打开File Search对话框, 选中正则表达式,在搜索文本框输入 /n 文件名称输入 *.java 在范围里选中Enclosing projects 然后就可以统计出整个项目的代码行数.

C++统计代码注释行数 &amp; 有效代码行数 &amp; 代码注释公共行 &amp; 函数个数

问题来源,在14年的暑假的一次小项目当中遇到了一个这样的问题,要求统计C++代码的注释行数,有效代码行数,代码注释公共行数,以及函数个数. 下面稍微解释一下问题, 1)注释行数:指有注释的行,包括有代码和注释的公共行(如:3,4,15,22...) 2)有效代码行:指有代码的行,包括有代码和注释的公共行(如:1,4,11,15,25....) 3)代码注释公共行:指又有代码又有注释的行(如:4,15...) 4)函数个数:这个不用说明了吧. 以下为注释情况展示代码: 1 #include <st

OS开发之oc(计算代码行数)--NSString、NSArray、NSFileManager的使用

直接上代码也 // 计算文件的代码行数 #import <Foundation/Foundation.h> /* path : 文件的全路径(可能是文件夹.也可能是文件) 返回值 int :代码行数 */ NSUInteger codeLineCount(NSString *path) { // 1.获得文件管理者 NSFileManager *mgr = [NSFileManager defaultManager]; // 2.标记是否为文件夹 BOOL dir = NO; // 标记是否为

[OC Foundation框架 - 20] 统计代码行数

注意: 1.变量名和函数名不要混淆调用 2.不要对文件夹进行文件的操作,没有权限 3.递归调用注意初始化变量 1 // 2 // main.m 3 // CodeLineCount 4 // 5 // Created by hellovoidworld on 14-11-18. 6 // Copyright (c) 2014年 com.hellovoidworld. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>

python学习之——计算文件行数

# -*- coding: cp936 -*- #转载源于:http://blog.csdn.net/houyj1986/article/details/21196027 #计算文件行数 #1.文件比较小: fobj = open(r"C:\test.txt",'rU') len_fobj = len(fobj.readlines()) print len_fobj #2.文件比较大 len_fobj = -1 for len_fobj,line in enumerate(open(r

使用vs的查找功能,简单大概的统计vs中的代码行数

VS强大的查找功能,可以使用正则表达式来进行查找,这里统计代码行数的原理就是: 在所有指定文件中进行搜索,统计匹配的文本行数. 但是匹配的行需要满足:非注释.非空等特殊非代码行. 使用Ctrl+Shift+F快捷键打开高级查找,可以设置查找内容为正则表达式(需要在下面勾选,同时可以设置查找的文件类型),查找范围请根据需要进行设置. 点击"查找全部"搜索整个解决方案,可以得到查找结果: 最下面会列出匹配行数,这个就是我们所谓的代码行数的估值了...不过这个值也太不准确了... 但是起码有

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

具体代码如下,代码中已经标注注释,如果需要测试自己的代码量只需要将文中的"需要测试代码的地址"改为自己的地址即可: 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(

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多种类型用分号(;)隔开 点击查找全部(查找结果如下)