Сопоставление слов с файлом .txt - PullRequest
0 голосов
/ 15 марта 2012

Я создаю игру и дошел до того, что у меня есть строки для поиска и проверки, действительно ли они являются словами, определенными в файле words.txt, который я хочу импортировать.

Я мало знаю о файловом вводе-выводе в целевом C / IOS, и поиск привел меня к тому, что связано с sqlite и Lucene.

Каков наилучший подход к простому поиску в словаре для подтверждения того, что строка представляет собой фактическое словарное слово из words.txt?

1 Ответ

0 голосов
/ 15 марта 2012

Это не имеет ничего общего с sqlite, если вы не храните свой файл в базе данных sqlite, о которой вы не упомянули.Самый быстрый способ сделать то, что вы хотите, это:

  1. Загрузить файл в память (если это не огромный файл, который вы не хотите загружать сразу, в данном случаеиспользовать NSFileHandle):

    NSError* err;
    NSString* words = [NSString stringWithContentsOfFile:@"words.txt" encoding:NSUTF8StringEncoding error:&err];
    // check err!
    if (err) {
        // handle errors
    }
    
  2. Передать слова в коллекцию, например, экземпляр NSArray.Мы предполагаем, что слова разделены запятой в файле:

    NSArray* wordsArray = [words componentsSeparatedByString:@","];
    
  3. Проверьте, находится ли ваше слово в массиве:

    NSString* wordWeLookFor = @"FooBar";
    NSUInteger index = [wordsArray indexOfObjectPassingTest:
             ^(id obj, NSUInteger idx, BOOL *stop) {
                *stop = [(NSString*)obj isEqualToString:wordWeLookFor]
                return *stop;
             }];
    if (index != NSNotFound) {
        // Found!
    } else {
        // Not found!
    }
    

Я предполагаю, что вы хотите избежать возможных проблем с составными словами, поэтому шаги 2 и 3 необходимы.Если в вашем файле слишком мало слов и вам повезло, вы можете просто использовать метод rangeOfString и пропустить шаги 2 и 3.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...