Borland С + +. Необходимость анализа очевидна — ведь стандартные шрифты фирмы Borland не содержат символов кириллицы, и поэтому отечественные программисты либо вообще отказываются от использования векторных шрифтов, либо переводят сообщения на английский язык, что, согласитесь, не всегда удобно. Познакомившись с несложными соглашениями, по которым конструируются CHR— файлы, Вы затем сможете создать собственную версию генератора (редактора) векторных шрифтов или воспользоваться программой, приводимой в прил.ПЗ, чтобы вставить в стандартные шрифты кириллицу. Существует профессиональный пакет Borland BGI Toolkit, в состав которого включен более мощный редактор FE.EXE.

Любой CHR—файл. состоит из пяти частей: заголовка, блока параметров, таблицы смещений, таблицы ширин, блока векторных команд. Структура файла показана в таблице 1.1.

Таблица 1.1 Структура CHR-файла

Название поля

Смещение

Размер поля

Содержимое

FontPileID

о

4

'РК'#8#8

Copyright

2

0...253

Любое (кроме $1А)

CopyrightEnd

?

1

$1А

HeaderOffset

CopyrightEnd +1

2

HeaderSize

FontName

CopyrightEnd + 3

4

Название шрифта

FontSize

CopyrightEnd + 7

2

Длина загружаемой части шрифта

FontVersion

CopyrightEnd + 9

3

1

ParPrefix

? (Обычно 128)

1

'+'

CharsCount

ParPrefix+1

2

Количество символов в шрифте

Reservl

ParPrefix+3

1

Не используется

FirstChar

ParPrefix + 4

1

Код первого символа

DataOffset

ParPrefix + 5

2

FontStart— ParPrefix

FillFlag

ParPrefix+7

1

Флаг заполнения

UpperMargin

ParPrefix+8

1

Верхняя граница символа

Reserv2

ParPrefix+9

1

Не используется

LowerMargin

ParPrefix+10

1

Нижняя граница символа

Reserv3

ParPrefix +11

5

Не используется

Offsets

ParPrefix+16

2'[CharsCount]

Таблица смещений

Widths

ParPrefix+16+ 2'[CharsCount]

[CharsCount]

Таблица ширин

FirstData

ParPrefix+16+ 3'[CharsCount]

?

Образы символов

FontEnd


Поле FontFileID открывает любой CHR—файл и всегда содержит символы 'РК'#8#8, которые служат для определения корректности файла. Символы ' РК' — это инициалы Филиппа Кана (Philip Kahn) — основателя фирмы Borland. Два следующих за ними символа #8 («Забой») стирают эти инициалы при выводе содержимого файла на экран командой Type, поэтому на экране будет видна только последовательность символов из массива Copyright, в котором содержатся название шрифта и объявление авторских прав фирмы Borland. Д^ина массива Copyright в принципе