Автор работы: Пользователь скрыл имя, 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
Приднестровский государственный университет им. Т.Г.Шевченко
Рыбницкий филиал
Кафедра физики, математики и информатики
Курсовая работа
по дисциплине «Программирование на языке высокого уровня C++»
на тему «Программа преобразования исходного текста на С++ в RTF-файл»
Выполнил:
студент I курса
специальности: «ПОВТ и АС»
Лазарь Алексей
Проверил:
ст. преп. Сташкова О.В.
Рыбница
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.Теоретический раздел
Данный формат был определен фирмой 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\;;\red
Определение цвета завершается точкой с запятой. Поскольку 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.
Этот оператор определяет шрифт абзаца, т.е. размер, начертание и имя гарнитуры, а также способ выравнивания текста абзаца. При этом используются два ключевых параметра:
\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. Технологический раздел
В курсовой работе использовались следующие стандартные заголовочные файлы:
Информация о работе Программа преобразования исходного текста на С++ в RTF-файл