2014-06-28 47 views
0

我有一個文件,其中包含一系列由分隔符分隔的信息。所以我的分隔符(在純文本文件)是這個樣子:使用分隔符逐個解析文本文件

<start> 
//some of info 
<end> 

我如何在文本閱讀,一塊一塊的,基於特定的分隔符我在找? 另外,是否可以讀取文件中的某個點,然後在那裏暫停,因此下一次訪問數據時,我從以前停止的點開始查找?

+0

該文件有多大? – user3386109

+0

目前它只有一段文字,但在未來我計劃有很多頁面的數據 – crazyshark

+0

這是在iOS上嗎? – Milo

回答

0

假設文件足夠小以適應內存(例如5MB或更少),可以使用stringWithContentsOfFile方法將文件讀入NSString,然後使用NSScanner解析該字符串。 NSScanner將跟蹤字符串中的當前位置,您可以使用scanLocation進行查詢。您也可以使用setScanLocation方法修改掃描位置。以下是一些示例代碼,以幫助您開始使用NSScanner。該代碼只是在輸入中查找標籤,並使用NSLog打印出找到的任何標籤。

- (void)scandemo 
{ 
    NSString *input = @"<start>\n//some of info\n<end>"; 
    NSString *tagName; 

    NSScanner *scanner = [NSScanner scannerWithString:input]; 
    for (;;) 
    { 
     // find the opening bracket 
     [scanner scanUpToString:@"<" intoString:NULL]; 

     if ([scanner isAtEnd]) 
      break; 

     // swallow the < character 
     if (![scanner scanString:@"<" intoString:NULL]) 
      break; 

     // find the closing bracket, and print out the tag 
     if ([scanner scanUpToString:@">" intoString:&tagName]) 
      NSLog(@"found tag <%@>", tagName); 

     if ([scanner isAtEnd]) 
      break; 
    } 
} 
相關問題