开发者

Load data from csv file (iphone SDk)

开发者 https://www.devze.com 2022-12-22 11:06 出处:网络
Does anyone know how to load data from csv file? For the code example, CPTestAppScatterPlotController.m

Does anyone know how to load data from csv file?

For the code example, CPTestAppScatterPlotController.m that I downloaded from core-plot Google website, a line graph can be plotted based on randomly generated initial data x, y.

 // Add some initial data
 SMutableArray *contentArray = [NSMutableArray arrayWithCapacity:100];
 NSUInteger i;
 for ( i = 0; i < 60; i++ ) {
     id x = [NSNumber numberWithFloat:1+i*0.05];
     id y = [NSNumber numberWithFloat:1.2*rand()/(float)RAND_MAX + 1.2];
     [contentArray addObject:[NSMutableDictionary 
                      dictionaryWithObjectsAndKeys:x, @"x", y, @"y", nil]];
}
self.dataForPlot = contentArray;

Then i modified the code,

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"ECG_Data" ofType:@"csv"];
NSString *myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil ];
NSScanner *scanner = [NSScanner scannerWithString:myText];
[scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"\n, "]];
NSMutableArray *newPoints = [NSMutableArray array];           
float time, data;
while ( [scanner scanFloat:&time] && [scanner scanFloat:&data] ) 开发者_如何学Python{
    [newPoints addObject:
    [NSMutableDictionary dictionaryWithObjectsAndKeys:
            [NSNumber numberWithFloat:time], @"time",
            [NSNumber numberWithFloat:data], @"data",
             nil]];
}
self.dataForPlot = newPoints;

It seems that my code could not read the data from csv file. (there are two cols of the data in ECG_Data.csv, one for time and one for data) Can anyone give me some suggestion??? Thanks!!!!


http://cocoawithlove.com/2009/11/writing-parser-using-nsscanner-csv.html

Here is a good place to start for creating a CSV parser. It's complete with sample code and user comments.

0

精彩评论

暂无评论...
验证码 换一张
取 消