Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
Курдль © ( 2004-04-27 20:25 ) [1]

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
evvcom © ( 2004-04-28 01:05 ) [2]

Сделай что надо в Word и сохрани как rtf.

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
evvcom © ( 2004-04-28 10:07 ) [4]

Блин! Все разжевывать надо? Сохранишь из Word, потом откроешь и посмотришь, как это получилось. По аналогии напишешь программно.

2 evvcom, прошу прошения, может плохо сформулировал. То что ты предлагал, я сделал в первую очередь, посмотрел, если разбираться голову сломать можно. А меня время сильно жмет, я диплом дописываю, хотелось бы уж сразу описание заиметь.

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
Курдль © ( 2004-04-28 14:09 ) [6]


> Блин! Все разжевывать надо?

Я попробовал в Яндексе поискать по фразе «Формат Rich Text (RTF)».
Вывалилось 3276 документов, первый же из которых оказался тем, что надо: «http://blackman.wp-club.net/docum/rtf.php»
Это что, сверхзадача, которую самому проделать нельзя? 🙁

Сделай программно через Word, примеры ищи в MSDN.

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
Курдль © ( 2004-04-28 15:15 ) [8]


> Сделай программно через Word

И как это должно выгдядеть?

В MSDN или воспользуйся поиском в интернете. Слова: Delphi, Word.Application, CreateOleObject.

и так далее, ищи примеры.


> Сделай программно через Word


> wa := CreateOleObject(«Word.Application»);

Вы бы хоть добавляли к своим категоричным советам нечто навроде «а не попробовать ли. » или «возможно я ошибаюсь, но сделать можно и так. «! Особенно когда всерьез советуете человеку удалять гланды через ж. елудок! 🙁

«evvcom © (28.04.04 01:05) [2]
Сделай что надо в Word и сохрани как rtf.»

Всё что можно сделать в Word ручками, можно сделать и программно. Но нужно разбираться, там много объектов. Поэтому нужно найти наиболее подходящий пример и от него плясать.

например (на СИ):
открытие Doc файла и сохранение в HTML
BOOL DocToHtml(char* fIn, char* fOut) <

// Convenient values declared as ColeVariants.
COleVariant covTrue((short)TRUE),
covFalse((short)FALSE),
covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

// Get the IDispatch pointer and attach it to the objWord object.
_Application objWord;
if (!objWord.CreateDispatch(«Word.Application»))
<
return ERR_WORD_RUN;
>
Documents docs(objWord.GetDocuments());
_Document doc;
doc.AttachDispatch(docs.Open(
COleVariant(fIn,VT_BSTR),
covFalse, // Confirm Conversion.
covTrue, // ReadOnly.
covFalse, // AddToRecentFiles.
covOptional, // PasswordDocument.
covOptional, // PasswordTemplate.
covFalse, // Revert.
covOptional, // WritePasswordDocument.
covOptional, // WritePasswordTemplate.
covOptional, // Format. // Last argument for Word 97
covOptional, // Encoding // New for Word 2000/2002
covTrue // Visible
) // Close Open parameters
); // Close AttachDispatch(Е)
doc.SaveAs(COleVariant(fOut,VT_BSTR), COleVariant((short)8),
covOptional, covOptional, covFalse,
covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional);
objWord.Quit(covFalse, covOptional, covOptional);
return OK;
>

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
Курдль © ( 2004-04-28 16:37 ) [12]


> Всё что можно сделать в Word ручками, можно сделать и программно.

ЗАЧЕМ? Если Вам понадобится в программе посчитать 2*2=4, вы что, по OLE полезете к Calculator.exe? А если Ворда на компе нет?

Требуется не 2*2 посчитать, а таблицы создать и сохранить в RTF.
Это посерьёзнее будет.

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
Курдль © ( 2004-04-28 17:35 ) [14]


> Требуется не 2*2 посчитать, а таблицы создать и сохранить
> в RTF.
> Это посерьёзнее будет.

У меня этот код занял

Привели бы код в таком случае. Вместо вопроса зачем.

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
Курдль © ( 2004-04-28 17:53 ) [16]

uses Classes, Windows, Forms, SysUtils;

function CreateRTF(StringList: TStringList; colCount: Integer): Boolean;

resourcestring
filePrefix = » <\rtf1\ansi\ansicpg1251\deff0\deflang1049<\fonttbl<\f0\froman"+
«\fcharset204<\*\fname Times New Roman;>Times New Roman CYR;> <"+
«\f1\froman\fcharset0 Times New Roman;>>»#13#10″\viewkind4\uc1″#13#10;
rowPrefix = «\trowd\trgaph108\trleft-108»;

sArraySizeError = «Размер массива меньше количества колонок»;
sDivisionError = «Размер массива не делится на количество колонок»;
sError = «Ошибка»;

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
evvcom © ( 2004-04-28 23:38 ) [17]

Ну вы, блин, даете! Я про Word заикнулся только для того, чтобы посмотреть на результат. Как Word в rtf сгенерит таблицы. Перечитайте вопрос! Я совсем не намекал на то, чтобы через OLE лезть в Word, рисовать таблицы, а потом заставлять его все это сохранять в rtf, после чего этот rtf грузить в ReachEdit. Действительно так получается «удаление гланд через ж. елудок».

Повторяю еще раз, Word использовать только для того, чтобы увидеть какие именно и в каком порядке он сгенерирует тэги, о которых было упомянуто в [1] ответе.
Используйте для изучения готовые инструменты. Чего велосипеды изобретать?

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
Курдль © ( 2004-04-29 10:18 ) [18]


> Повторяю еще раз, Word использовать только для того, чтобы
> увидеть какие именно и в каком порядке он сгенерирует тэги,
> о которых было упомянуто в [1] ответе.
> Используйте для изучения готовые инструменты. Чего велосипеды
> изобретать?

Согласен! Но это когда не хватает документации.
А здесь же налицо готовая спецификация по формату RTF! Чего же боле?

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf форматеКак сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате
evvcom © ( 2004-04-29 11:47 ) [19]

Источник

Как сделать таблицу в WordPad

Многие считают, что самым известным текстовым редактором является WordPad. На самом же деле, это далеко не так. Но время ему уделить всё-таки нужно, ведь именно он предустановлен практически в любой версии операционной системы Windows. Следовательно, ВордПад действительно один из самых востребованных редакторов. По крайней мере, среди тех пользователей, которым хватает его функционала. Возможно, Вы увидитесь, но сегодня мы обсудим с Вами одну весьма интересную тему: из этой статьи Вы узнаете, как сделать таблицу в WordPad. К счастью, это действительно реально и если Вам не нужны изыски работы с Microsoft Office Word, то можете продолжать пользоваться данным софтом.

Создание таблицы с помощью ВордПад

Разумеется, для начала нам нужно запустить саму программу. Сделать это можно следующим способом:

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Отлично, окно программы запустилось. А значит, мы можем продолжить с ним работу.

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Собственно, это единственный способ хоть как-то сделать таблицу в ВордПад. Дальше Вы сами решайте, хотите ли Вы каждый раз так заморачивать или всё-таки установите более продвинутый текстовый редактор от Microsoft в лице Word. Мы советует второй вариант.

Впрочем, стоит помнить, что заточен под работу с таблицами именно Excel – у него и функционал соответствующий, поэтому если тип будущего документа позволяет, лучше сразу создавайте таблицы в нём.

Источник

Файлы RTF – как открывать, редактировать и конвертировать

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

RTF-файлы полезны, потому что многие программы их поддерживают. Это означает, что вы можете создать файл RTF в одной программе в конкретной операционной системе, такой как macOS, а затем открыть тот же файл RTF в Windows или Linux, и он будет выглядеть, в основном, одинаково.

Как открыть файл RTF

Самый простой способ открыть файл RTF в Windows – это использовать WordPad, так как он предварительно установлен. Однако, другие текстовые редакторы и текстовые процессоры также прекрасно справятся с задачей, например, LibreOffice, OpenOffice, AbleWord, Jarte, AbiWord, WPS Office и SoftMaker FreeOffice.

Zoho Docs и Google Docs – это два способа открывать и редактировать файлы RTF онлайн.

Если вы используете Документы Google для редактирования файла RTF, сначала необходимо загрузить его в свою учетную запись Google Диска с помощью меню «Создать» → «Загрузка файла». Затем щелкните файл правой кнопкой мыши и выберите «Открыть с помощью» → «Документы Google».

Важно понимать, что не каждая программа, поддерживающая файлы RTF, будет отображать файл одинаково. Это связано с тем, что некоторые программы не поддерживают более новые спецификации формата RTF.

Некоторые другие, «платные» способы открытия RTF-файлов включают использование Microsoft Word или Corel WordPerfect.

Некоторые из этих редакторов Windows RTF также работают с Linux и Mac. Если вы работаете в macOS, вы также можете использовать Apple TextEdit или Apple Pages, чтобы открыть файл RTF.

Если ваш RTF-файл открывается в программе, с которой вы не хотите его использовать, изучите тему «Как изменить программу по умолчанию для определенного расширения файла в Windows». Например, внесение этого изменения было бы полезно, если вы хотите отредактировать файл RTF в Блокноте, вместо OpenOffice Writer.

Как конвертировать файл RTF

Самый быстрый способ конвертировать файлы RTF – использовать онлайн-конвертер RTF, например, FileZigZag. Вы можете сохранить RTF как файл DOC, PDF, TXT, ODT или HTML. Другой способ конвертировать RTF в PDF онлайн или в PNG, PCX или PS – это использовать Zamzar.

Doxillion – это ещё один бесплатный конвертер файлов документов, который может конвертировать RTF в DOCX и множество других форматов документов.

Другой способ конвертировать файл RTF – использовать один из стандартных редакторов RTF (описанных выше). Когда файл уже открыт, используйте меню «Файл» или опцию «Экспорт», чтобы сохранить RTF-файл в другом формате.

Больше информации о формате RTF

Формат RTF был впервые использован в 1987 году, но в 2008 году Microsoft перестала его обновлять. С тех пор в этот формат были внесены некоторые изменения. Это определяет, будет ли один редактор документов отображать файл RTF таким же образом, как и другой, который его создал, зависит от того, какая версия RTF используется.

Например, хотя вы можете вставить изображение в файл RTF, не все ридеры знают, как его отобразить, потому что не все они обновлены до последней спецификации RTF.

Файлы RTF когда-то использовались для файлов справки Windows, но с тех пор были заменены файлами справки Microsoft Compiled HTML, использующими расширение файла CHM.

Первая версия RTF была выпущена в 1987 году и использовалась MS Word 3. С 1989 по 2006 годы были выпущены версии 1.1-1.91, причем последняя версия RTF поддерживала такие вещи, как разметка XML, пользовательские теги XML, защита паролем и математические элементы.

Поскольку формат RTF основан на XML, а не двоичен, вы можете фактически прочитать содержимое, открыв файл в текстовом редакторе, таком как Блокнот.

Источник

Как сделать таблицу в rtf формате

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Dim objWord As Word.Application
Dim objDoc As Word.Document
Dim objTable As Word.Table

‘ открываем файл шаблона
Set objDoc = objWord.Documents.Open (Pth)
‘ делаем его активным
objDoc.Activate

‘ связывам объект с таблицей
Set objTable = objWord.ActiveDocument.Tables (1)

‘ выделяем 2-ю строку таблицы в шаблоне
objTable.Cell (2, 1).Range.Select

‘ для каждой строки в каждую ячейку вставляем нужные
‘ данные из массива
For i = 1 To NumStr
For j = 1 To 5
objTable.Cell (i + 1, j).Range.Text = NewData (j, i)
Next j
Next i

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

В то же время существует целый ряд бесплатных и достаточно полнофункциональных офисных пакетов: OpenOffice, StarOffice, EasyOffice и др. Для большинства операций, выполняемых обычно с документами, их возможностей вполне достаточно. Но возможна ли их простая и эффективная интеграция в прикладное программное обеспечение?

Решением этой проблемы может быть использование RTF-файлов. Этот формат, предложенный Microsoft как стандарт для обмена данными между текстовыми редакторами, поддерживается абсолютным большинством офисных пакетов. Сама Microsoft использует его в качестве формата, в котором данные передаются через буфер обмена между различными приложениями Windows.

Кратко об RTF

В формате RTF используются только коды, представляемые символами из наборов ASCII, MAC и PC. Помимо текста, RTF-файл содержит команды управления в читаемой форме. Документ состоит преимущественно из команд управления настройкой программы чтения. Эти команды можно разделить на управляющие слова и управляющие символы.

Управляющее слово представляет собой последовательность символов с разделителем в конце. Например, фрагмент:

соответствует началу закладки ndoc.

Для задания управляющей последовательности в RTF-формате используются буквы от А до Z и от а до z, а также цифры от 0 до 9. Национальные символы к управляющей информации не относятся.

В качестве управляющих символов используются отдельные буквы. Перед каждым управляющим символом вводится обратная косая черта (\). Например, фрагмент:

устанавливает шрифт № 1 размером в 20 единиц.

Фрагмент RTF-файла приведен ниже. Структура его, как можно видеть, напоминает структуру HTML-документа:

\intbl\phmrg\posy371\dxfrtext180\dfrmtxtx180\dfrmtxty0\nowrap
\aspalpha\aspnum\faauto\adjustright\rin0\lin0\f1\fs20\lang1049
\langfe1049\cgrid\langnp1049\langfenp1049<\lang1033\langfe1049
\langnp1033 11\cell 12\cell 13\cell> \pard \ql \li0\ri0\widctlpar\intbl
\aspalpha\aspnum\faauto\adjustright\rin0\lin0

В RTF-формате существует возможность объединять отдельные последовательности в группы при помощи скобок:

Такие группы создаются, например, при описании сносок, колонтитулов, закладок и т.п.

Поскольку нас интересуют только определенные задачи, знания приведенных выше управляющих слов и символов вполне достаточно. Условимся для простоты называть управляющие слова и символы тегами.

А теперь рассмотрим алгоритмы решения трех основных задач, возникающих при создании документации.

Вставка строки на месте закладки

Пример такой закладки:

Добавление строк в таблицу

Следует отметить, что недостатком предложенного алгоритма является то, что он может копировать любую строку таблицы, кроме первой. Но в большинстве случаев первая строка является «шапкой» документа и копировать ее нет необходимости.

Заполнение ячейки таблицы

Представим, что требуется найти k-ю ячейку в m-й строке n-й таблицы и вставить в нее текстовую строку данных. Пример таких ячеек:

Программа на VisualBasic, демонстрирующая применение такой технологии и функционально идентичная программе, приведенной в начале этой статьи, выглядит так:

Dim res As Boolean ‘ результат выполнения функций

res = In_Zakl1(pth, «ndoc», Str_ndoc)
res = In_Zakl1(pth, «name», Str_name)

‘ для каждой строки в каждую ячейку вставляем
‘ нужные данные из массива

For i = 1 To NumStr
For j = 1 To 5
res = In_Tcell1(pth, 1, i + 1, j, NewData (j, i))
Next j
Next i

res = In_Tcell1(pth, 1, NumStr + 2, 5, Itog)
‘ проставляем сумму «Всего»

Заключение

Источник

Текст любой ценой: RTF

Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf. Сегодня мы продолжим с обещанным rtf.

Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей 1.9.1 — он приобрёл под 300 страниц официально документации и огромное количество надстроек, которые в большей степени нам будут мешать при получении plain text’а. Попробуем их обойти.

А что там внутри?

Как уж повелось давайте заглянем вовнутрь rtf-файла и посмотрим, что там внутри:

Как сделать таблицу в rtf формате. Смотреть фото Как сделать таблицу в rtf формате. Смотреть картинку Как сделать таблицу в rtf формате. Картинка про Как сделать таблицу в rtf формате. Фото Как сделать таблицу в rtf формате

Что мы видим? Я вижу наше любимое стихотворение «Парус». Мы видим изначально текстовый 8-битный формат данных. Это уже радует — когда в исходных данных текст, понимать, что происходит, гораздо проще. Теперь давайте разберёмся, как эти самые данные прочитать. Для этого я расскажу немного теории по теме.

Будем считать, что rtf состоит из управляющих слов, которые могут быть сгруппированы во вложенные множества. Управляющие слово начинается на обратный слэш ( \ ), группа обёрнута в фигурные скобки ( < и >).

Управляющие слово состоит из последовательности букв английского алфавита (от a до z ) и может быть завершено численным параметром (возможно отрицательным). Как вариант, слово может содержать один не цифро-буквенный ascii-символ. Всё, что не подпадает под эти правила, не является частью управляющего слова. Таким образом, последовательность вида \rtf1\ansi\ansicpg1251 без проблем делится на три слова rtf с параметром 1 (major-версия формата), ansi (текущая кодировка) и ansicpg с параметром 1251 (текущая кодовая страница под номером 1251 — т.е. Windows-1251).

Группированные множества определяют область действия управляющих слов. Таким образом, управляющие слова описанные внутри фигурных скобок работают только внутри них и всех дочерних подмножеств. Для того, чтобы правильно отработать какие слова имеют место сейчас — требуется вести стек управляющих слов. При открытии фигурной скобки создавать новый элемент-массив в стеке, в который сразу же добавлять данные предыдущего слоя стека, при закрытии скобки — удалять самый верхний слой.

Откуда брать текст?

С устройством нового для нас формата мы познакомились, теперь зададимся вопросом, а где брать текст. Тут всё не так сложно, как может показаться — текст надо брать там, где текущая последовательность не идентифицируется, как управляющее слово. С парой исключений, естественно.

Во-первых, стоит отметить, что исходная кодировка rtf-файла — это ANSI, поэтому без всякий изысков сохранится только, английский текст. Нас же интересует, как минимум, русский текст, а ещё лучше Unicode, не так ли? Что правда, то правда — rtf хоть и старый формат, но сгодится на сохранение и того и другого.

Ну и второй, более интересный вариант, это unicode-кодированные данные. Для них в формат включено лаконично короткое ключевое слово \uABCD с цифровым параметром ABCD. ABCD в данном случае код unicode-символа в десятичной системе счисления. Всё опять просто, как вы могли заметить.

Давайте почитаем!

Похоже, что накопленных нами данных будет достаточно, чтобы прочитать наши первые rtf-файлы. Поехали:

Код с комментариями вы можете получить на GitHub’е.

Заключение

Что дальше? Дальше я бы хотел затронуть форматы электронных книг, такие как fb2, epub и подобные им. В связи с этим, я хотел бы обратиться за помощью к читателям: во-первых, какие ещё форматы электронных книг стоит посмотреть, а во-вторых, где можно найти побольше файлов, указанных вами форматов. Заранее спасибо 🙂

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *