2010-04-09 65 views
0

我試圖重拍我在OBJC中在C#中創建的程序。在C#中我使用streamreader搜索數據文件尋找我要找的行,然後將該行轉換爲我可以使用的字符串。iphone掃描數據文件的數據

我已經看過NSScanner,但我不確定這是否相當我正在尋找,但我絕不是一個可可專家。

我希望能夠做的就是讓它搜索數據文件以查找出現的字符串,然後當/如果發現該字符串出現,它將返回字符串被找到的那一行作爲串。

任何想法?

+0

數據輸入是否爲文本文件? – 2010-04-09 22:34:41

回答

0

如果您的數據文件不夠大以適應內存,您可以將其加載到字符串中並使用字符串方法進行搜索。例如:

NSData *data = [NSData dataWithContentsOfFile:@"/path/to/file.dat"]; 
NSString *dataString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; 
for (NSString *line in [dataString componentsSeparatedByString:@"\n"]) 
    if (!NSEqualRanges([line rangeOfString:searchString], NSMakeRange(NSNotFound,0))) 
     return line; 
+0

什麼太大? dat文件是462 kb – Brodie 2010-04-10 04:26:55

+0

462 kb是沒有問題的。我甚至不擔心10 MB以下的任何內容。 – Tom 2010-04-10 22:47:07

+0

'NSRangeMake'應該是'NSMakeRange'。 – jrdioko 2011-06-13 23:09:00