逐行读取字符串(在Objective-C中)

时间:2011-03-21 14:24:17

标签: objective-c xcode string stringbuilder readline

逐行读取字符串的快速简单方法是什么?

我目前正在使用Xcode,但欢迎使用任何语言的解决方案。

作为参考,我更愿意创建一个允许我读取它的函数,就像可以从C#中的文件读取行一样:

lineString = handle.ReadLine();

2 个答案:

答案 0 :(得分:2)

答案并未解释如何逐行阅读 LARGE 文本文件。 Objective-C中没有很好的解决方案来读取大文本文件而不将它们放入内存(这不是一个选项)。

在这些情况下,我喜欢使用c方法:

FILE* file = fopen("path to my file", "r");

size_t length;
char *cLine = fgetln(file,&length);

while (length>0) {
    char str[length+1];
    strncpy(str, cLine, length);
    str[length] = '\0';

    NSString *line = [NSString stringWithFormat:@"%s",str];        
    % Do what you want here.

    cLine = fgetln(file,&length);
}

请注意,fgetln不会保留换行符。另外,我们+1为str​​的长度,因为我们想为NULL终止腾出空间。

答案 1 :(得分:1)

这些答案可能有助于Objective-C: Reading a file line by line