나는 파일을 읽을 수있는이 라인을 가지고 배열의 항목으로 그 라인을 분할 :읽기 파일
- (NSArray *)lerLinhasArquivoBundle:(NSString *)nomeArquivo {
NSString *arquivo = nil;
NSError *error = nil;
NSString *bd = [[NSBundle mainBundle] pathForResource:nomeArquivo ofType:@"csv"];
if (bd) {
arquivo = [NSString stringWithContentsOfFile:bd
encoding:NSUTF8StringEncoding
error:&error];
}
if (error || !bd) {
return nil;
}
return [arquivo componentsSeparatedByString: @"\r\n"];
}
문제는이 파일 만 작동한다는 것입니다 "windows"CR/LF 엔딩이 있고 UNIX 라인 엔딩이있는 파일에는 실패합니다. 파일이 유닉스 파일 일 때 배열에 하나의 큰 항목 만 있습니다.
좋아요, 나는 \r\n
을 테스트하고 단지 \n
을 테스트하는 방법을 해킹 할 수 있으며 배열에 더 많은 항목을 제공하는 방법을 사용합니다. 그러나 이는 절름발이 솔루션으로 보입니다.
을 알고 있습니까? 어떤 라인 엔딩이 사용되고 있으며, 그 정보를 리턴 라인에서 사용하여 요소를 배열로 분할합니까?
은 무엇'[componentsSeparatedByCharactersInSet는 arquivo : NSCharacterSet는 newlineCharacterSet] 반환하지]'합니까? – trojanfoe
아하 !!! 그게 다야. 이 칭찬을 답으로 추가하십시오! 감사합니다 – SpaceDog