Поиск в текстовом файле - Какао - PullRequest
1 голос
/ 09 октября 2009

Как бы я набрал код, который просматривает текстовый файл из заданного каталога. Я хочу, чтобы поисковое слово было «password123», и если оно содержит его, оно перейдет к следующему шагу, если нет, то выдаст сообщение об ошибке.

Ответы [ 3 ]

4 голосов
/ 11 октября 2009

Попробуйте эту функцию;

ETA

Хорошо, я идиот, и я набрал код, не пытаясь сначала.

Это работает. У меня также есть простой проект Xcode , который работает с этим, который вы можете загрузить, чтобы попробовать сами, если я здесь что-то не так напечатал.

    // Get the URL for the Password.txt file on the desktop.
    NSURL *fileURL = [NSURL fileURLWithPath:[@"~/Desktop/Password.txt" stringByExpandingTildeInPath]];

    // Read the contents of the file into a string.
    NSError *error = nil;
    NSString *fileContentsString = [NSString stringWithContentsOfURL:fileURL 
                                                            encoding:NSUTF8StringEncoding 
                                                               error:&error];

    // Make sure that the file has been read, log an error if it hasn't.
    if (!fileContentsString) {
        NSLog(@"Error reading file");
    }

    // Create the string to search for
    NSString *password = @"Password123";

    // Search the file contents for the given string, put the results into an NSRange structure
    NSRange result = [fileContentsString rangeOfString:password];

    // -rangeOfString returns the location of the string NSRange.location or NSNotFound.
    if (result.location == NSNotFound) {
        // Password not found. Bail.
        NSLog(@"Password not found in file");
        return;
    }
    // Continue processing
    NSLog(@"Password found in file");    
}
3 голосов
/ 09 октября 2009

Чтобы прочитать текстовый файл:

NSString *path = ...;
NSError *error;
NSString *stringFromFileAtPath = [[NSString alloc]
                                      initWithContentsOfFile:path
                                      encoding:NSUTF8StringEncoding
                                      error:&error];
if (stringFromFileAtPath == nil) {
    // an error occurred
    NSLog(@"Error reading file at %@\n%@",
              path, [error localizedFailureReason]);
    // implementation continues ...

Взято из найденных документов Apple здесь .

Вы можете использовать

NSString rangeOfString: 

для поиска вашей строки.
Подробнее об этом здесь: Документация Apple: поиск строк

1 голос
/ 09 октября 2009

Если вы хотите придерживаться Какао, то NSScanner ваш друг.

Если вы не хотите использовать простой Unix API, вы можете использовать:

int match = system("grep -q password123 pathToMyfile");

и проверьте, равен ли match 0, и в этом случае совпадение было найдено.

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