Программа преобразования исходного текста на С++ в RTF-файл

Автор работы: Пользователь скрыл имя, 04 Июня 2012 в 12:17, курсовая работа

Краткое описание

Целью курсовой работы является разработка программного продукта, реализующего преобразование Си текста в RTF-файл. Для реализации поставленной цели были определены следующие задачи:
1. Разобрать структуру RTF-файла.
2. Реализовать алгоритм чтения файла.
3. Реализовать алгоритм преобразования Си в RTF.
4. Реализовать запись полученных данных в файл.

Содержание

Введение 3
I.Теоретический раздел 4
1.1 RTF- Rich Text Format 4
II. Технологический раздел 11
2.1. Стандартные заголовочные файлы. 11
2.2.Стандартные типы данных. 13
2.3. Описание собственных функций 14
Заключение 16
Литература 17
Приложение 18

Вложенные файлы: 1 файл

Документ Microsoft Word.doc

— 235.00 Кб (Скачать файл)


Приднестровский государственный университет им. Т.Г.Шевченко

Рыбницкий филиал

Кафедра физики, математики и информатики

 

 

 

Курсовая работа

 

по дисциплине «Программирование на языке высокого уровня C++»

на тему «Программа преобразования исходного текста на С++ в RTF-файл»

 

Выполнил:

студент I курса

специальности: «ПОВТ и АС»

Лазарь Алексей

Проверил:

ст. преп. Сташкова О.В.

 

 

 

 

 

Рыбница

                                                              2012

17

 



Содержание

Введение

I.Теоретический раздел

1.1 RTF- Rich Text Format

II. Технологический раздел

2.1. Стандартные заголовочные файлы.

2.2.Стандартные типы данных.

2.3. Описание собственных функций

Заключение

Литература

Приложение

 

 

 

 

 

 

 

Введение

В данной курсовой рассматривается алгоритм преобразования  исходного текста на  Си в RTF –файл.

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

      с помощью HTML

      с помощью RTF

Я буду использовать второй вариант. Поэтому я буду преобразовывать Си в RTF-файлы. В настоящее время существует множество IDE средств разработки Си, и в каждом из них  практически своя подсветка синтаксиса. Я за основу своей подсветки взял подсветку Си кода в программе Notepad++, так как эта программа наиболее распространенная и удобная.

              Целью курсовой работы является разработка программного продукта, реализующего преобразование  Си текста в RTF-файл. Для реализации поставленной цели были определены следующие задачи:

1.      Разобрать структуру RTF-файла.

2.      Реализовать алгоритм чтения файла.

3.      Реализовать алгоритм преобразования Си в RTF.

4.      Реализовать запись полученных данных в файл.

 

 

 

 

 

 

 

 

I.Теоретический раздел

1.1 RTF- Rich Text Format

Rich Text Format -(RTF, «формат обогащённого текста» (rich с английского — богатый)) — проприетарный межплатформенный формат хранения размеченных текстовых документов, предложенный группами программистов, основавшими компании Microsoft и Adobe, как метатэговский формат для редактора Word в 1982 году. С тех пор спецификация формата несколько раз изменялась. RTF-документы поддерживаются всеми современными текстовыми процессорами. После разрыва отношений с Microsoft компания Adobe продолжила развитие метатэговского языка, заложенного в основу RTF, создав в 1985 году язык PostScript.

Данный формат был определен фирмой Microsoft как стандартный формат для обмена текстовыми документами. Следовательно, по назначению этот формат подобен SYLK-формату для электронных таблиц. RTF поддерживается многими продуктами фирмы Microsoft. Так, например, начиная с версии 2.0, он введен в Windows в качестве Clipboard-формата, благодаря чему возможен обмен данными между различными прикладными программами Windows. Кроме того, RT-формат поддерживается программами WORD для Macintosh, начиная с версии 3.X, и WORD для PC, начиная с версии 4. X.

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

Документ состоит преимущественно из команд управления настройки программы чтения файлов в RTF-формате. Эти команды можно разделить на управляющие слова (control words) и управляющие символы (control symbols).

Управляющее слово представляет собой последовательность символов с разделителем (delimiter) в конце:

\lettersequence <delimiter>

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

        Пробел (space), причем этот символ относится к управляющему слову;

        Цифра или знак "-". После этих символов должен следовать параметр с разделителем. В качестве разделителя может быть использован пробел или другие символы, кроме цифр и букв;

        Все символы, отличные от цифр и букв. Эти символы не относятся к управляющему слову.

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

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

\control symbol

В настоящее время определены только некоторые из этих символов. Поэтому при чтении неизвестные символы могут быть пропущены.

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

{ начало группы

} конец группы

Такие группы создаются, например, при описании сносок, колонтитулов и т.п. Если необходимо разместить символы "\", "{" или "}" внутри обычного текста, то перед ними надлежит поставить обратную косую черту:

\\

\{

\}.

Это позволяет программе, читающей RTF-последовательность, распознать, что символ не следует интерпретировать как управляющий.

Специальные управляющие слова (special control words)

В RTF имеются управляющие слова специального назначения. Рассмотрим кратко эти слова и их назначение.

\chpgn

Управляющее слово change page number выводит текущий номер страницы.

\chftn

Управляющее слово change footnote активизирует автоматическую нумерацию сносок.

\chdate

С помощью change date можно вывести текущую дату.

\chtime

С помощью change time можно вывести текущее время.

\chatn

Ссылка на примечание (текст следует в группе).

\chftnsep

Свидетельствует об изменении линии, отделяющей сноски от текста.

\/

С помощью данной последовательности вводится текст формулы.

\:

Обозначает подпункт индекса.

\*

Текст может быть пропущен при чтении RTF-формата.

\~

Задает жесткий (неразрываемый) пробел между двумя словами, т.е. в этой позиции предложение не может быть разделено при переносе на следующую строку.

\-

Символ обозначает мягкий перенос (nonrequired hyphen).

\_

Символ обозначает неразрываемый перенос (nonbreaking hyphen), на месте которого слово не может быть разделено.

\'hh

Последовательность позволяет прямой ввод в тексте шестнадцатеричных чисел. Они задаются вместо символов hh.

\page

Данная последовательность задает переход на новую страницу.

\line

Эта последовательность вызывает переход на новую строку в тексте.

\раr

С помощью данной последовательности в тексте отмечается конец абзаца. Последовательность \раr может заменяться последовательностью \10 или \13. При этом \10 соответствует ASCII-символу с кодом 10 (carriage return). Непосредственно ввести ASCII-код 10 (CR) нельзя, т.к. он игнорируется программой чтения.

\sect

Эта последовательность обозначает конец текстового фрагмента или текстового абзаца.

\tab

Данная последовательность заменяет табулятор. Можно также непосредственно задавать ASCII-код 09Н.

\сеll

Конец таблицы (столбец).

\row

Конец таблицы (строка).

Операторы настройки (destination control words)

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

{\rtf0\pc.......}

Ниже описан формат некоторых операторов.

\rtf <параметр>

Задает метку начала файла. В качестве параметра программа, при помощи которой создается файл, может указывать номер версии. Например:

{\rtf0.......}

Метка должна стоять в начале файла. После этого оператора могут следовать другие операторы или закрывающая скобка.

Установка вида кодировки для сохраняемого текста осуществляется с помощью следующих операторов:

        \ansi: текст хранится в стандартном ASCII-формате. Этот формат используется, например, в Windows.

        \mac:. текст хранится в кодировке Macintosh

        \рс: для вывода текста используется кодировка символов IBM-PC.

        \рса: IBM-PC Code Page 850 (модель PS\2).

Для передачи текстов между различными системами должна использоваться кодировка \ansi.

\colortbl

Windows и другие программы пользуются палитрами для определения используемых цветов. Чаще всего палитра состоит из 16 различных цветов, получаемых путем комбинации основных цветов — красного, зеленого и синего. Команда \colortbl позволяет изменить отдельные определения в палитре. Для каждого цвета в таблице указывается величина красной, зеленой и синей составляющей. Каждый цвет описывается тремя параметрами:

\red000

\green000

\blue000

Вместо 000 указывается величина доли цвета в диапазоне от 0 до 255. Пример: в таблице, состоящей из 16 цветов, должны быть заново определены цвета 0-й и 2-й. Для переопределения цветов может быть задана следующая последовательность:

{ \colortbl \red128\green64\blue128\;;\red0\green64\blue128; }

Определение цвета завершается точкой с запятой. Поскольку 1-й цвет остается без изменений, в последовательности два символа ";" следуют один за другим. Последовательность завершается закрывающей скобкой.

Оператор \cfn определяет цвет фона (при стандартной настройке n=0), а оператор \cbn - цвет символа (при стандартной настройке n=0).

\fonttbl

Данный оператор используется для построения таблицы шрифтов и соотносит имя шрифта (группы шрифтов) с номером шрифта. При определении шрифта можно использовать следующие операторы:

        \fnil: имя группы шрифтов неизвестно. При выводе должен использоваться стандартный шрифт.

        \froman: должны использоваться шрифты группы Roman (например, Times Roman)

        \fswiss: этот оператор предписывает использование шрифтов из группы Swiss (Helvetica, Swiss и т.д.)

        \fmodern: могут использоваться шрифты Pica, Elite и Courier.

        \fscript: используются курсивные шрифты группы Script.

        \fdecor: при указании этого оператора шрифты должны выбираться из группы Decor (Old English и т.д.).

        \ftech: выбор группы шрифтов с техническими и математическими символами (SYMBOL и т.д.).

Команда для создания группы шрифтов может состоять из таких операторов:

{\fonttbl\f0\fnil default;}

{\fl\froman roman h;}

{\f2\fswiss helvetica;}

После ключевого слова \fonttbl следует первый номер шрифта \f0. Далее идет определение группы шрифтов. Здесь после номера 0 указано \fnil, т.е. имя группы неизвестно. Следующий параметр обозначает имя выбираемого шрифта (например, roman h). Указание default говорит считывающей программе о том, что следует использовать стандартный шрифт. После имени шрифта стоит точка с запятой. В приведенном примере определены только шрифты с номерами 1 и 2. Вся последовательность может быть объединена фигурными скобками в группу.

Таблица шрифтов должна быть заполнена значениями до того, как встретится оператор \stylesheet или текст. Стандартный шрифт вводится оператором \deffn.

\stylesheet

Этот оператор определяет шрифт абзаца, т.е. размер, начертание и имя гарнитуры, а также способ выравнивания текста абзаца. При этом используются два ключевых параметра:

        \sbasedon000: вместо символов 000 указывается номер вида шрифта, который используется в качестве текущего.

        \snext000: назначает номер следующего вида шрифта (style), который - станет текущим.

Оператор может иметь, например, следующий вид:

{\stylesheet\s0\f3\fs20\qj Normal;}

{\sl\f3\fs30\b\qc Heading Level 3;}

Шрифты нумеруются числами от 0 до n (\s0...). В первой строке стилю абзаца 0 (\s0) предписывается имя Normal. Вывод текста выполняется шрифтом 3 (\f3), размером 10 пунктов (\fs20). Параметр \qj говорит о том, что надпись должна выравниваться по формату. Вторая строка определяет стиль шрифта 1, который получает имя Heading Level 3. Шрифт имеет размер 15 пунктов, жирное начертание (\Ь = bold) и при выводе надпись центрируется (\qc).

Это не все спецификаторы RTF, их там очень много. Это стандартный набор использования. Последующие версии RT-формата могут быть дополнены новыми командами. Если программа не распознает команду, то она может быть пропущена. Конец каждой команды отмечается одним из описанных выше разделяющих символов (чаще всего -точкой с запятой).

 

 

 

 

 

 

II. Технологический раздел

2.1. Стандартные заголовочные файлы.

В курсовой работе использовались следующие стандартные заголовочные файлы:

Информация о работе Программа преобразования исходного текста на С++ в RTF-файл