0

我已经尝试过这种方法来解析 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;

    }
4

1 回答 1

2

为此,您应该查看 NSScanner。您需要检测是否收到双引号,如果是,则扫描直到结束引号并将其视为一个单元。如果你得到一个冒号,那么你就知道你得到了下一列。

于 2012-12-14T17:24:24.350 回答