Walker
Walker

Reputation: 1225

Read file into array

I have a file of words/phrases separated by newlines. I need to get the file and read each word/phrase into the array. I have this so far:

    NSFileHandle *wordsFile = [NSFileHandle fileHandleForReadingAtPath:[[NSBundle     mainBundle] pathForResource:@"WordList"
                                                                                                           ofType:nil]];
    NSData *words = [wordsFile readDataToEndOfFile];
    [wordsFile closeFile];
    [wordsFile release];

But I'm not sure if that's right, and if so, where to go from there.

Also, teabot's answer of

NSString componentsSeparatedByCharactersInSet: NSCharacterSet newlineCharacterSet

works great, but it's 10.5 only. How would this behavior be replicated for 10.4?

Upvotes: 6

Views: 7966

Answers (2)

micmoo
micmoo

Reputation: 6091

Just for completeness (and because I am bored) here's a complete example bassed on teabot's post:

    NSString *string = [NSString stringWithContentsOfFile:[[NSBundle mainBundle]
                                                            pathForResource:@"file" ofType:@"txt"]];

    NSArray *array = [string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
    NSLog(@"%@",array);

Upvotes: 11

teabot
teabot

Reputation: 15444

Here is an approach that should work - I'll leave out an actual code example as the implementation should be fairly straightforward given following:

Construct an NSString from your file with:

NSString stringWithContentsOfFile:encoding:error

Split the string into an array of NSStrings using the following:

NSString componentsSeparatedByCharactersInSet:
NSCharacterSet newlineCharacterSet

You should end up with an NSArray of NSStrings with each string containing one of the lines in your file.

Upvotes: 11

Related Questions