2012-01-17 52 views
0

我已經編寫了一個Mac應用程序,它交叉引用各種輸入文本和RTF文件以生成輸出文件。該應用的一部分讀入這些文件,並從TXT或RTF文件中提取「語言重要」字符,並將其釋放以供進一步處理。從RTF文件中提取'具有語言意義的'字符

我爲此使用了以下方法。它工作正常,但我想知道如果也許我要走很長的路或做一些完全不必要的事情。

inputdatafile = [NSString stringWithContentsOfFile: fullpath encoding: NSASCIIStringEncoding error:&error]; 

    // test rtf wrapper code right here // 
    inputdataNSData=[inputdatafile dataUsingEncoding:NSUTF8StringEncoding]; 
    wrapper = [[NSFileWrapper alloc] initRegularFileWithContents:inputdataNSData]; 
    rtfData = [[NSAttributedString alloc] 
      initWithRTF:[wrapper regularFileContents] documentAttributes:nil]; 
    inputdatafilefromrtf = [rtfData string]; 
    if (inputdatafilefromrtf) { 
     inputdatafile = [NSMutableString stringWithString:inputdatafilefromrtf];}; 

inputdatafile加載文件的內容。該程序不知道它是什麼類型的文本文件,並試圖查看它是否是RTF。如果是這樣,它會提取文件的內容以供進一步處理。如果不是,它假定它是直接文本並使用它。

這可能是完全意外的工作,需要更新或者也許有更好的方法來做到這一點。

任何人有任何想法,將不勝感激。

回答

0

你可以嘗試識別文件的使用RTFS magic number像Unix命令file類型呢,或者你可以使用一個像庫libenca

下面是文件解析的一般解釋和magic numbers

+0

謝謝,但我沒有想到這些替代方法中的任何一個都比我上面偶然拼湊的更好。 – 2012-01-20 03:42:09

相關問題