2012-01-17 2 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];}; 

В файле ввода данных содержится содержимое файла. Программа не знает, какой текстовый файл она и пытается увидеть, является ли это RTF. Если это так, он извлекает содержимое файла для дальнейшей обработки. Если нет, он предполагает, что это прямой текст и использует это.

Возможно, что это работает совершенно случайно и нуждается в обновлении или, возможно, есть лучшие способы сделать это.

Любые мысли, которые есть у кого-либо, были бы очень благодарны.

ответ

0

Вы могли бы попытаться идентифицировать тип файла, используя RTFS magic number как команды Unix file делает, или вы могли бы использовать библиотеку как libenca.

Вот общее описание анализа файлов и magic numbers.

+0

Спасибо, но я не думаю, что любая из этих альтернатив работает намного лучше, чем то, что я случайно собрал вместе выше. –

Смежные вопросы