objective c:读取csv文件

问题描述:

我有这种类型的文件:objective c:读取csv文件

@firstTablel:1#one#two#three#four; 2#苹果#塔#花#机器人;

这是我的csv文件的示例...“firstTable”是我的表格,1和2是我的两个项目的两个id。

如何在目标c中读取此文件?你可以帮我吗?

+7

这看起来并不像一个“逗号分隔值”文件... – 2011-03-31 17:31:15

可可科学家们有一个伟大的职位上阅读的CSV文件:http://macresearch.org/cocoa-scientists-part-xxvi-parsing-csv-data

在你的情况,你会做这样的事情:

NSString *fileString = [NSString stringWithContentsOfFile:pathToFile encoding:NSUTF8StringEncoding error:outError]; 
if (!fileString) { 
    NSLog(@"Error reading file."); 
} 
NSScanner *scanner = [NSScanner scannerWithString:fileString]; 
[scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"\n#; "]]; 

NSString *id = nil, *hashOne = nil, *hashTwo = nil, *hashThree = nil, *hashFour = nil; 
while ([scanner scanUpToString:@"#" intoString:&id] && [scanner scanUpToString:@"#" intoString:&hashOne] && [scanner scanUpToString:@"#" intoString:&hashTwo] && [scanner scanUpToString:@"#" intoString:&hashThree] && [scanner scanUpToString:@";" intoString:&hashFour]) { 
    // Process the values as needed. 
    NSLog(@"id:%@, 1:%@, 2:%@, 3:%@:, 4:%@", id, hashOne, hashTwo, hashThree, hashFour); 
} 

在您所提供的样品,这将打印:

2011-03-31 13:55:07.846 Stephen[39304:903] id:1, 1:one, 2:two, 3:three:, 4:four 
2011-03-31 13:55:07.849 Stephen[39304:903] id:2, 1:apple, 2:tower, 3:flower:, 4:robot 
+0

你没有处理好“@firstTablel:”。除此之外,这是要走的路。 – ughoavgfhw 2011-03-31 18:48:40

+0

但pahtfile?我的csv是在我的项目文件夹中,没有路径文件... – CrazyDev 2011-04-01 07:58:59

+1

使用+ [NSBundle pathForResource:@“csvFile”ofType:@“csv”]获取csv文件的完整路径名(作为NSString)。 – 2011-04-01 08:52:22