不要重新发明轮子:CHCSVParser是用Objective-C编写的本机CSV解析器。它可以正确处理带引号的字段,转义字符等。它具有便利的方法(+[NSArray arrayWithContentsOfCSVFile:...]
)并将文件读取分块以避免产生低存储器警告。
这是(或多或少)你将如何使用它。 CSV文件是远程复杂的东西一点点,但不是很多(你必须将URL的内容下载到一个字符串,然后将该字符串传递到解析器)。
#import "CHCSV.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString * csv = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://download.finance.yahoo.com/d/quotes.csv?s=RHT+MSFT&f=sb2b3jk"]];
NSArray * rows = [NSArray arrayWithContentsOfCSVString:csv encoding:NSUTF8StringEncoding error:nil];
//You can also do: rows = [csv CSVComponents];
NSLog(@"rows: %@", rows);
[pool drain];
return 0;
}
此日志:
2010-12-23 09:05:44.431 CHCSVParser[99377:a0f] (
(
RHT,
"46.48",
"46.46",
"26.51",
"49.00"
),
(
MSFT,
"28.23",
"28.22",
"22.73",
"31.58"
),
(
""
)
)
它返回的NSStrings
NSArrays
的NSArray
。
你问如何解析CSV数据? – 2010-12-22 09:14:49