2012-08-17 3 views

답변

4

먼저 csv 파일의 형식을 이해해야합니다. 사실 아주 쉽습니다. 데이터가 쉼표와 줄 바꿈으로 구분 된 파일 일뿐입니다.

그래서 사람들의 이름, 이메일 및 메시지를 저장해야한다고 가정 해보십시오. CSV 파일은 다음과 같습니다.

John Doe, [email protected], Hello World!

신원 미상, [email protected], 푸 푸 여기에 우리가 줄 바꿈 쉼표로 분리 된 자신의 정보에 의해 분리 된 두 사람이

. 이 모든 혼란을 막기 위해서는 outputString이 필요합니다.

이제 우리는 peopleArray이라고하는 사람들의 배열이 있다고 가정 해 보겠습니다. 우리의 peopleArrayPeopleObjects의 무리를 보유하고 각 PeopleObjectname, emailmessage 속성을가집니다.

우리는 훌륭한 사람들과 그들의 각각의 정보를 가지고 있습니다. 이제 outputString을 만들 수 있습니다.

NSString *outputString = @""; 

for (PeopleObject *person in peopleArray) { 
     outputString = [outputString stringByAppendingFormat:@"%@,%@,%@\n", person.name, person.email, person.message]; 
} 

올바른 형식의 문자열이 생성됩니다. 이제 모든 것을 파일에 써야합니다.

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docDirectory = [paths objectAtIndex:0]; 

지금 docDirectory 파일을 작성하는 우리를 말할 것이다 :

우리는 먼저 문서 디렉토리가 필요합니다. 다음으로 디렉토리에 파일 이름을 추가해야합니다.

NSString *outputFileName = [docDirectory stringByAppendingPathComponent:@"People.csv"]; 

이제 형식이 지정된 csv 문자열과 저장할 위치가 있습니다. 마지막 부분은 파일에 쓰는 것입니다.

//Create an error incase something goes wrong 
NSError *csvError = NULL; 

//We write the string to a file and assign it's return to a boolean 
BOOL written = [outputString writeToFile:outputFileName atomically:YES encoding:NSUTF8StringEncoding error:&csvError]; 

//If there was a problem saving we show the error if not show success and file path 
if (!written) 
    NSLog(@"write failed, error=%@", csvError); 
else 
    NSLog(@"Saved! File path =", outputFileName); 

이제 당신은 그냥 어디 그래서 당신이 알고있는거야 outputFileName을 저장 파일을 다시 액세스해야하는 경우.

+0

안녕하세요 코리 씨, 답장을 보내 주셔서 감사합니다. 이제 CSV 파일을 저장할 수있게되었습니다 ... 그래서 두 개의 텍스트 필드를 사용하여 세부 정보를 가져옵니다. 사용자 ... 그래서 나는 for 루프를 사용하지 않고 ... 대신 출력 문자열에 값을 직접 보내고있다. 그러나 추가하는 대신에, 덮어 쓰고 새 데이터로 대체한다. 나는 outputString을 사용한다. [outputString stringByAppendingFormat : @ "% @, % @ \ n", name.text, address.text]; 및 BOOL written = [outputString writeToFile : 출력 파일 이름을 원자 적으로 : 예 인코딩 : NSUTF8StringEncoding 오류 : & csverror]; –

+0

for 루프를 사용하지 않으므로 헤더 파일에 outputString을 선언하고 선언하십시오. viewDidLoad에서 초기화하면 추가 할 수 있습니다. – random

+0

좋아 .... 나는 감사에게 ... 당신의 도움을 많이 ... 마지막 질문을 작동하도록 있어요 ... 그래서 내 맥 북 프로에서 people.csv 파일은 앱의 문서 디렉토리에 저장됩니다. 이 응용 프로그램을 iPad에 배포하면이 파일을 어디서 구해야합니까? iPad의 해당 폴더로 이동하여 CSV 파일을 삭제하거나 파일을 복사하여 드롭 박스 또는 Mac 책에 복사 할 수있게하려고합니다. 도와 주실 수 있습니까? –

관련 문제