我已经尝试过这个方法解析csv并且我得到了值但是如果任何字段是双引号“”并且在“45,34,555”中有一个逗号,那么它在3个字段中分隔它只是一个字段。如何修改以下代码以获得所需的结果。
NSMutableArray *contentArray = [NSMutableArray array];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"csv"];
NSError* error;
NSString* Data = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error ];
if (Data)
{
NSArray *myText = [Data componentsSeparatedByString:@","];
NSInteger idx;
for (idx = 0; idx < myText.count; idx++) {
NSString *data =[myText objectAtIndex:idx];
NSLog(@"%@", data);
id x = [NSNumber numberWithFloat:0+idx*0.002777778];
id y = [NSDecimalNumber decimalNumberWithString:data];
[contentArray addObject:
[NSMutableDictionary dictionaryWithObjectsAndKeys:x, @"x", y, @"y",nil]];
}
self.dataForPlot = contentArray;
}
答案 0 :(得分:2)
您应该为此目的查看NSScanner。您需要检测是否获得双引号,如果是,则扫描直到结束引号并将其视为单个单位。如果你得到一个冒号,那么你知道你有下一个专栏。