2010-03-11 7 views
2

Est-ce que quelqu'un sait comment charger les données du fichier csv?Charger les données du fichier csv (iphone SDk)

Pour l'exemple de code, CPTestAppScatterPlotController.m que j'ai téléchargé à partir de noyau graphique site Web de Google, un graphique de ligne peut être tracée basée sur au hasard x données initiales générées, 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; 

Puis j'ai modifié le 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]) { 
    [newPoints addObject: 
    [NSMutableDictionary dictionaryWithObjectsAndKeys: 
      [NSNumber numberWithFloat:time], @"time", 
      [NSNumber numberWithFloat:data], @"data", 
      nil]]; 
} 
self.dataForPlot = newPoints; 

Il semble que le code de mon ne pouvait pas lire les données du fichier csv. (il y a deux colonnes de données dans ECG_Data.csv, une pour l'heure et une pour les données) Quelqu'un peut-il me donner une suggestion ??? Merci!

+0

Où est-il défaillant? Avez-vous une erreur/une exception? La boucle est-elle en cours d'exécution? –

Répondre

Questions connexes