Получение текста из файлов - PullRequest
       1

Получение текста из файлов

0 голосов
/ 14 августа 2010

Все еще работаю над этой программой.Следующая задача в моем списке дел - выбор случайных слов из предварительно сгенерированного списка.Я отсортировал код рандомизации, но теперь мне нужно знать, как лучше всего хранить и извлекать слова из моего большого списка (а это довольно большой список - более 220 слов).

Так как я 'Я занимаюсь дизайном для iPhone, память - первостепенная задача.Из-за этого я надеялся избежать загрузки всего файла в память.Я бы предпочел, чтобы файл был размещен так, чтобы я мог сразу перейти к индексированной позиции в файле и получить только те данные, которые мне нужны.Было бы хорошо, если бы я мог использовать текстовый файл, который у меня есть, со всеми словами в нем, но я не против преобразования, если есть польза от какого-либо другого метода.

Кто-нибудь получил какие-либо предложения получший способ сделать это?

-Ash

Ответы [ 2 ]

1 голос
/ 14 августа 2010

Ну, 220 слов - это не большой список :-) Скажем, каждое слово длинное, скажем, 20 символов.Тогда вы говорите о жалких 4,4 КБ.Так что я бы не стал беспокоиться о размере здесь.Как отметил Кевин, [NSArray arrayWithContentsOfFile:...], вероятно, самый простой способ (также посмотрите на [NSDictionary dictionaryWithContentsOfFile:...]).

Но если ваш список становится действительно большим (скажем, 10000 слов), то я бы предложил вам прочитатьна SQLite, который также поддерживается на iPhone.

0 голосов
/ 14 августа 2010

Не беспокойтесь о месте для хранения (требуемый объем памяти намного меньше, чем вы думаете). Используйте PLIST (Файл> Новый файл> Ресурс (Mac OS X)> Список свойств) и arrayWithContentsOfFile , чтобы упростить загрузку слов (определите массив как корневой элемент в PLIST; документация Apple содержит подробности). Тогда просто:

srandom(time(NULL));
NSUInteger index = rand() % [array length];
NSString *word = [array objectAtIndex:index];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...