如何键入搜索给定目录中的文本文件的代码。我希望搜索词是“password123”,如果它包含,则它将继续进行下一步,如果不是,它将给出错误消息。
答案 0 :(得分:4)
尝试此功能;
<强> ETA 强>
好吧,我是个白痴,我输入的代码没有先试过。
这很有效。我还有一个simple Xcode project可以使用这个,你可以下载,如果我在这里输入错误的话就自己试试。
// 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");
}
答案 1 :(得分:3)
要阅读文本文件:
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 ...
取自发现的here的Apple文档。
您可以使用
NSString rangeOfString:
搜索你的字符串。
更多关于这里:
Apple Documentation: Searching Strings
答案 2 :(得分:1)
如果你想坚持Cocoa,那么NSScanner
就是你的朋友。
如果您不打扰使用普通的unix api,可以使用:
int match = system("grep -q password123 pathToMyfile");
并检查match
是否为0,在这种情况下找到匹配。