Цель c: прочитать CSV-файл - PullRequest
2 голосов
/ 31 марта 2011

У меня есть этот тип файла:

@ firstTablel: 1 # один # два # три # четыре;2 # apple # tower # flower # robot;

это пример моего CSV-файла ... "firstTable" - моя таблица, а 1 и 2 - два идентификатора моих двух элементов.

Как я могу прочитать этот файл в цель c?Вы можете мне помочь?

1 Ответ

12 голосов
/ 31 марта 2011

Какао для ученых имеет отличный пост о чтении файлов CSV: http://macresearch.org/cocoa-scientists-part-xxvi-parsing-csv-data

В вашем случае вы бы сделали что-то вроде:

NSString *fileString = [NSString stringWithContentsOfFile:pathToFile encoding:NSUTF8StringEncoding error:outError];
if (!fileString) {
    NSLog(@"Error reading file.");
}
NSScanner *scanner = [NSScanner scannerWithString:fileString];
[scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"\n#; "]];

NSString *id = nil, *hashOne = nil, *hashTwo = nil, *hashThree = nil, *hashFour = nil;
while ([scanner scanUpToString:@"#" intoString:&id] && [scanner scanUpToString:@"#" intoString:&hashOne] && [scanner scanUpToString:@"#" intoString:&hashTwo] && [scanner scanUpToString:@"#" intoString:&hashThree] && [scanner scanUpToString:@";" intoString:&hashFour]) {
     // Process the values as needed.
     NSLog(@"id:%@, 1:%@, 2:%@, 3:%@:, 4:%@", id, hashOne, hashTwo, hashThree, hashFour);
}

В примерепри условии, что это напечатает:

2011-03-31 13:55:07.846 Stephen[39304:903] id:1, 1:one, 2:two, 3:three:, 4:four
2011-03-31 13:55:07.849 Stephen[39304:903] id:2, 1:apple, 2:tower, 3:flower:, 4:robot
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...