2013-07-12 89 views
0

我有一個文本文件,它有很多行我怎樣才能從文本文件中獲得最後'n'行數?我們可以給每個文件的文本文件的數字我們如何才能得到它。如何讀取目標文本文件中的最後n行文件C

+0

你的意思是你只想最後一行? –

+0

不完全是最後一行但是最後100行.. – kiri

+0

嘗試實現我的答案。我希望你會得到你的答案.... –

回答

2

你可以使用NSFileHandleseekToEndOfFile然後從offsetInFile使用seekToFileOffset:readDataOfLength:掃描數據讀取回車每次和計數,直到你得到所需數量的向後工作。隨着你走,你可以在每次掃描後建立文本。

0

嘗試使用此一:

NSString* textFile = [[NSBundle mainBundle] 
        pathForResource:@"fileName" ofType:@"txt"]; 

    NSString* fileContents = [NSString stringWithContentsOfFile: textFile 
      encoding: NSUTF8StringEncoding error: nil]; 

單獨由新線

NSArray* allLinedStrings = 
      [fileContents componentsSeparatedByCharactersInSet: 
      [NSCharacterSet newlineCharacterSet]]; 

在這裏你可以得到你的最後100個對象

NSString* oneLineStr; 
    for (int i = allLinedStrings.count - 100; i < allLinedStrings.count; i++) 
    { 
     oneLineStr = [allLinedStrings objectAtIndex: i]; 
     [email protected]("New Line %@", oneLineStr); 
    } 
+0

如果文件大小爲10 MB會怎麼樣?你會等幾秒鐘才能完成幾毫秒的事情嗎? – Sulthan

+0

是的,當然,它會等待,如果你的解決方案,然後讓我知道嗎? –

0

一種方法是把\ n至將文本文件中的不同行分開。然後

NSString* path = [[NSBundle mainBundle] pathForResource:@"filename" 
               ofType:@"txt"]; 
NSString* content = [NSString stringWithContentsOfFile:path 
               encoding:NSUTF8StringEncoding 
               error:NULL]; 
NSArray* lines = [content componentsSeparatedByString: @"\n"]; 

然後你可以把數組中的最後幾個元素。

希望這會有所幫助..

相關問題