2011-03-31 9 views
2

나는이 파일 유형이 있습니다 :객관적인 c : csv 파일을 읽으십시오

@ firstTablel : 1 # one # two # three # four; 2 # 사과 # 탑 # 꽃 # 로봇;

이것은 내 CSV 파일의 예입니다 ... "firstTable"은 내 테이블이고 1과 2는 내 두 항목의 두 ID입니다.

이 파일을 어떻게 객관적으로 읽을 수 있습니까? 나 좀 도와 줄 수있어? 과학자에 대한

+7

... –

답변

12

코코아는 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 
+0

당신은 "@firstTablel을"처리하지 않았다. 그것 이외에, 이것이 갈 길입니다. – ughoavgfhw

+0

하지만 pahtfile? 내 CSV가 내 프로젝트 폴더에 있는데 경로 파일이 없습니다 ... – CrazyDev

+1

CSV 파일의 전체 경로 이름 (NSString)을 얻으려면 + [NSBundle pathForResource : @ "csvFile"ofType : @ "csv"]를 사용하십시오. –

관련 문제