我编写了一个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。如果是,则提取文件的内容以供进一步处理。如果没有,则假定它是直文并使用它。
这可能是完全意外的工作,需要更新,或者有更好的方法来做到这一点。
任何人都有任何想法会非常感激。
答案 0 :(得分:0)
您可以尝试使用RTF magic number来识别文件类型,例如unix命令 file ,或者您可以使用libenca之类的库。
以下是文件解析和magic numbers的一般说明。