从 RTF 文件中提取'linguistically significant'字符



我已经编写了一个Mac应用程序,它可以交叉引用各种输入文本和RTF文件来生成输出文件。该应用程序的一部分读取这些文件,从TXT或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。如果是,它将提取文件的内容以供进一步处理。如果不是,它会假设它是纯文本并使用它。

这可能是完全意外的,需要更新,或者可能有更好的方法来做到这一点。

任何人有任何想法都将不胜感激。

您可以像unix命令file那样尝试使用RTF幻数来识别文件类型,也可以使用libenca这样的库。

以下是对文件解析和幻数的一般解释。

最新更新