2014-06-28 45 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; 
    } 
} 
相关问题