0

csvを解析するためにこのメソッドを試しましたが、値を取得していますが、いずれかのフィールドが二重引用符で囲まれ、「45,34,555」のようにコンマが含まれている場合、値を3つのフィールドに区切ると1つのフィールドになります。以下のコードを変更して、必要な結果を取得します。

 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 に答える