2010-05-26 82 views
2

在我的iPhone項目中,每個文件中有許多HTML文件具有不同的文本和圖像內容。我需要實現搜索工具,它將返回匹配關鍵字的結果(HTML文件名)。任何人都可以有任何線索,我怎麼能做到這一點?由於在HTML文件中搜索

回答

0

你可以使用這個搜索跨多個HTML文件中的文本:

NSError *err = nil; 
NSString *pageHTML = [NSString stringWithContentsOfFile:htmlfilePath encoding:NSUTF8StringEncoding error:&err]; 

if(err) 
{ 
    pageHTML = [NSString stringWithContentsOfFile:filePath encoding:NSASCIIStringEncoding error:&err]; 

} 


if([searchTxtField.text length]) 
{ 
    NSRange range1 = [pageHTML rangeOfString:searchTxtField.text options:NSCaseInsensitiveSearch]; 
    if(range1.location != NSNotFound) 
    { 
     NSString *stringFound = [pageHTML substringWithRange:range1]; 
    } 
    else 
    { 
     //Load the next html page. 
    } 
} 
0
NSString *docsDir = [NSHomeDirectory() stringByAppendingPathComponent: @"Documents"]; 
NSFileManager *localFileManager=[[NSFileManager alloc] init]; 
NSDirectoryEnumerator *dirEnum =[localFileManager enumeratorAtPath:docsDir]; 

NSString *file; 
NSString *[email protected]"String you're lookign for"; 

NSArray *matchingFiles=[NSMutableArray array]; 
while (file = [dirEnum nextObject]) 
    if ([[file pathExtension] isEqualToString: @"html"]) 
     NSString *currentFile = [NSString stringWithContentsOfFile:file encoding:NSUTF8StringEncoding error:&err]; 
     if ([currentFile rangeOfString:stringYourelookingFor options:NSCaseInsensitiveSearch]!=NSNotFound) 
      [matchingFiles addObject:file] 
    }  
} 

[localFileManager release]; 

在結束matchingFiles將包含匹配stringYourelookingFor

0

兩個其他的答案將是非常的所有文件速度慢且內存密集,因爲它們要求您將磁盤上的每個文件讀入內存。

我會建議在用戶想要搜索它們之前創建自己的HTML文件索引,然後簡單地搜索索引。這是Core Data的優秀之處。