Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 28th, 2012  |  syntax: None  |  size: 1.65 KB  |  hits: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. NSScanner behavior
  2. [fields scanCharactersFromSet:fieldCharSet intoString:nil];
  3.        
  4. Name,Location,Number,Units
  5. A,AA,4,mm
  6. B,BB,3.5,km
  7. C,CC,10.2,mi
  8. D,DD,2,mm
  9. E,EE,6,in
  10. F,FF,2.8,m
  11. G,GG,3.7,km
  12. H,HH,4.3,mm
  13. I,II,4,km
  14.        
  15. -(void)parseFile {
  16.     NSCharacterSet *lineCharSet = [NSCharacterSet newlineCharacterSet];
  17.     NSCharacterSet *fieldCharSet = [NSCharacterSet characterSetWithCharactersInString:self.separator];
  18.     // import the file
  19.  
  20.     NSStringEncoding *encoding = nil;
  21.     NSError *error = nil;
  22.     NSString *data = [[NSString alloc] initWithContentsOfURL:self.absoluteURL usedEncoding:encoding error:&error];
  23.     NSString *line,*field;
  24.  
  25.  
  26.     NSScanner *lines = [NSScanner scannerWithString:data];
  27.     while (![lines isAtEnd]) {
  28.  
  29.         [lines scanUpToCharactersFromSet:lineCharSet intoString:&line];//automatically sets to next line - why?
  30.  
  31.  
  32.  
  33.         NSLog(@"%@n",line);
  34.  
  35.         NSScanner *fields = [NSScanner scannerWithString:line];
  36.  
  37.         while (![fields isAtEnd]) {
  38.  
  39.             [fields scanUpToCharactersFromSet:fieldCharSet intoString:&field];
  40.  
  41.             [fields scanCharactersFromSet:fieldCharSet intoString:nil]; //have to do this otherwise will not go to next symbol
  42.  
  43.             NSLog(@"%@n", field);
  44.  
  45.         }
  46.     }
  47. }
  48.        
  49. -(void)parseFile {
  50.     NSString *data = [[NSString alloc] initWithContentsOfURL:self.absoluteURL usedEncoding:encoding error:&error];
  51.  
  52.     for (NSString *line in [data componentsSeparatedByString:@"n"]) {
  53.         if (line.length == 0)
  54.             continue;
  55.  
  56.         NSLog(@"line: %@", line);
  57.  
  58.         for (NSString *field in [line componentsSeparatedByString:self.separator]) {
  59.             NSLog(@"    field: %@", field);
  60.         }
  61.     }
  62. }