Виведення тексту

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Виведення тексту
Основи виведення тексту
Одне з найбільших переваг Windows полягає в досить легкій використанні великої кількості різноманітних високоякісних шрифтів. На цій лекції ми повинні будемо познайомитися з основними правилами виведення тексту та застосування шрифтів.
Спочатку ми будемо розбиратися з основними засобами виведення тексту. З однією з функцій, що здійснюють висновок ми вже зустрічалися:
BOOL TextOut (hDC, nXStart, nYStart, lpsString, wLength);
Ця функція здійснює висновок рядки тексту, заданої параметром lpsString, довжиною wLength символів, починаючи з зазначеної позиції (nXStart, nYStart) на заданому контексті пристрою hDC.
Це найпростіша функція, що здійснює виведення в Windows. Однак результат її застосування визначається багатьма додатковими параметрами.
По-перше, колір виведеного тексту задається трьома різними атрибутами контексту пристрої: поточним кольором тексту, поточним кольором фону і режимом заповнення фону. Раніше ми вже розглядали ці атрибути і способи їх зміни. Для маніпуляцій з цими атрибутами призначені функції:
COLORREF SetTextColor (hDC, crColor);
COLORREF GetTextColor (hDC);
COLORREF SetBkColor (hDC, crColor);
COLORREF GetBkColor (hDC);
int SetBkMode (hDC, nMode);
int GetBkMode (hDC);
Для завдання кольору символів використовується функція SetTextColor (), яка встановлює в якості кольору символів найближчий чистий колір, доступний на пристрої.
Для завдання кольору фону використовуються два інші атрибуту контексту пристрою. Якщо встановлено режим заповнення фону OPAQUE (використовується за умовчанням), то для заповнення фону під текстом використовується поточний колір фону, який може і не збігатися з фоном вікна, який зафарбовується пензлем. У тих випадках, коли фон під текстом не треба змінювати, використовується режим TRANSPARENT (при цьому атрибут "колір фону" ігнорується).
По-друге, при виведенні тексту задається його початкова позиція. Визначення і використання цієї початкової позиції не так-то й просто. Для того, щоб розібратися з цим, нам доведеться ввести декілька нових термінів, які використовуються для визначення розміру символів і рядків.

Символ може розміщуватися в своїй комірці на деякій відстані від усіх чотирьох кордонів. Для того, що б можна було визначити точні характеристики символів, призначена спеціальна функція:
BOOL GetTextMetrics (hDC, lpTEXTMETRIC);
Ця функція заповнює структуру TEXTMETRIC інформацією про поточний застосовується шрифті. Зараз ми розглянемо тільки деякі поля цієї структури, які визначають розміри символів. Для цього ми наведемо зображення символів, на якому будуть проставлені розміри так, як вони називаються в структурі TEXTMETRIC. Пізніше ми будемо повертатися до окремих полів цієї структури.

Зазвичай за висоту рядка приймають суму розмірів tmHeight і tmExternalLeading, що дозволяє виводити рядки, так, щоб між ними завжди був невеликий проміжок.
Дещо складніше виходить з визначенням ширини символу і довжини рядка. Це пов'язано з тим, що Windows може застосовувати як шрифти з фіксованою шириною символу (fixed pitch), так і пропорційні (variable pitch) шрифти. Тому в тій інформації, яку Ви можете отримати про шрифт, використовуються два параметри: максимальна ширина символу tmMaxCharWidth і середня ширина символу tmAveCharWidth.
Проте користуватися обома цими характеристиками дуже не зручно. Застосування максимальної ширини може давати сильно завищений результат, а середня величина може помилятися в будь-яку сторону. Практично вона дає пристойне наближення тільки для довгих рядків англійської не спеціального тексту, так як для обчислення середньої ширини використовуються частоти зустрічальності англійських символів.
На практиці використовують функції, які дозволяє визначити точні розміри рядка як у висоту, так і в ширину:
DWORD GetTextExtent (hDC, lpsString, wLength);
BOOL GetTextExtentPoint (hDC, lpsString, wLength, lpSize);
Ці функції, визначивши розміри рядка, повертають результат або у вигляді подвійного слова (в молодшому слові зберігається ширина, в старшому - висота рядка), або в структурі типу SIZE, адреса якої Ви вказуєте. Замість структури SIZE може бути використана структура POINT, (так було раніше, що і дало назву функції). Обидві ці структури збігаються.
Однак треба зробити невеличке зауваження: коли обчислюється висота рядка використовуються значення висот окремих символів. Тому, якщо Ваша рядок складається з невеликих символів, то її висота може бути істотно менше, ніж повна висота знакоместа.
У деяких випадках буває бажано дізнатися точну ширину кожного символу. (Наприклад, таке може знадобитися для переміщення каретки або виділення фрагмента тексту.) Для цього призначені функції
BOOL GetCharWidth (hDC, uFirstChar, uLastChar, lpnWidths);
BOOL GetCharABCWidth (hDC, uFirstChar, uLastChar, lpABC);
Функція GetCharWidth () визначає ширину кожного символу, що входить в інтервал від uFirstChar до uLastChar і розміщує результати в масиві цілих чисел, зазначеному параметром lpnWidths.
Функція GetCharABCWidth () повертає більш докладну інформацію про ширину кожного символу, що використовується тільки TrueType шрифтами.
Результати розміщуються в масиві структур типу ABC, сенс полів пояснимо малюнком:


По-третє, при виведенні тексту за допомогою функції TextOut () (або ExtTextOut ()), використовується ще один атрибут GDI, який називається "режим вирівнювання тексту". Він встановлюється та перевіряється за допомогою функцій:
UINT SetTextAlign (hDC, nAlign);
UINT GetTextAlign (hDC);
Цей атрибут указує, як треба розташовувати рядок тексту щодо вказаної початкової точки. Зазвичай зазначена точка задає положення верхнього лівого кута рядка. Однак за допомогою функції SetTextAlign () ви можете встановити і інший режим вирівнювання.
Параметр nAlign показує положення якої точки задається:
по горизонталі
по вертикалі
TA_LEFT (за замовчуванням)
TA_TOP (за замовчуванням)
TA_CENTER
TA_BASELINE
TA_RIGHT
TA_BOTTOM
У деяких випадках за допомогою режиму вирівнювання можна обійтися без обчислення ширини рядка самим, а перекласти цю роботу на Windows.
Для цього існує додаткові режими вирівнювання TA_UPDATECP і TA_NOUPDATECP (за замовчуванням). Якщо використовується режим TA_UPDATECP, то координати, що вказують положення точки виведення тексту ігноруються, а замість них використовується атрибут контексту пристрою "положення поточної крапки". Після операції виведення ця поточна точка переміщається на праву межу виведеного тексту.
Для початкової установки поточної крапки в потрібну позицію (або при переході з рядка на рядок) Ви можете скористатися функцією:
DWORD MoveTo (hDC, nX, nY);
По-четверте, на виведення тексту впливають атрибути контексту пристрою, вирівнюючі довжини рядків. Для цього GDI містить дві функції, змінюють інтервали між словами та символами.
Перша функція
int SetTextCharacterExtra (hDC, nExtraSpace);
встановлює інтервал між двома сусідніми символами. З її допомогою легко можна "розрядити" рядок або слово так, що б її довжина виявилася дорівнює необхідної величиною.
Друга функція використовується для завдання ширини символів, використовуваних для поділу слів в рядку. Кожен шрифт містить символ, який називається "символ-роздільник" (Break Char). Який символ є роздільником, можна визначити за значенням поля. TmBreakChar структури TEXTMETRIC, так як для різних шрифтів можуть бути встановлені різні символи-роздільники. Зазвичай це прогалина.
int SetTextJustification (hDC, nExtraSpace, cBreakChars);
Ця функція змінює ширину символу-роздільника таким чином, що б cBreakChars, зустрінутих в рядку, збільшили її ширину на nExtraSpace одиниць.

Додаткові функції для виведення тексту
Розглянута функція TextOut () є найпростішою. У неї багато обмежень. Наприклад, вона не розпізнає керуючих символів у рядку типу табуляції, перекладу рядка і повернення каретки. У деяких випадках можливе застосування інших функцій, що здійснюють висновок тексту.
Якщо рядок тексту містить символи табуляції, то Ви повинні замість функції TextOut () використовувати функцію:
LONG TabbedTextOut (
hDC, nXStart, nYStart, lpsString, wLength, cTabStops, lpnTabPositions, nTabOrigin);
Перші 5 параметрів цієї функції використовуються так само, як і у функції TextOut (), а три додаткових застосовуються таким чином:
Параметр lpnTabPositions містить масив x-координат точок, в яких відбувається зупинка табулятора. Він повинен бути впорядкований в зростаючому порядку. Параметр cTabStops задає число таких точок.
Є дві особливості у застосуванні цих параметрів:
якщо обидва вони рівні 0, то табулятор буде зупинятися через кожні 8 середніх ширин символів.
якщо масив містить лише одне число N (і cTabStops дорівнює 1), то табулятор буде зупинятися через кожні N одиниць.
Параметр nTabOrigin вказує x-координату, починаючи від якої відраховується положення табулятора. Функція повертає розмір виведеної рядка.
З введенням цієї функції довелося ввести ще одну функцію, яка визначає розміри рядка, що містить символи табуляції:
DWORD GetTabbedTextExtent (hDC, lpsString, wLength, cTabStops, lpnTabPositions);
Однак ця функція не має параметра nTabOrigin, тому її результат може відрізнятися від результату функції TabbedTextOut (...).
Існує спеціальна функція, яка здійснює висновок рядки тексту і встановлює необхідні проміжки між окремими символами рядки:
BOOL ExtTextOut (hDC, nXStart, nYStart, fuOption, lpRect, lpsString, wLength, lpnDx);
Параметри hDC, nXStart, nYStart, lpsString і wLength використовуються також, як і у функції TextOut (). Два додаткових параметра fuOption і lpRect задають прямокутник, в якому здійснюється висновок тексту і метод використання цього прямокутника.
Якщо fuOption одно ETO_OPAQUE, то зазначений прямокутник зафарбовується поточним кольором фону; якщо fuOption одно ETO_CLIPPED, то прямокутник обмежує область виведення тексту. Обидва параметра fuOption і lpRect можуть бути 0, тоді такий прямокутник не використовується.
Останній параметр lpnDx вказує на масив цілих чисел, який містить відстані між кожним символом рядка і наступним за ним. Якщо цей параметр NULL, то використовуються стандартні проміжки.
Функція
int DrawText (hDC, lpszString, wLength, lpRect, fuFormat);
здійснює виведення в зазначений прямокутник, здійснюючи найпростіші операції форматування тексту. Перші три параметри цієї функції аналогічні таким-же параметрам функції TextOut (), за одним винятком: Ви можете вказати довжину рядка рівної -1, тоді Windows буде припускати, що це asciiz рядок (що закінчується нульовим байтом) і сам визначить її довжину.
Два останніх параметри визначають прямокутник, в який Ви хочете здійснити висновок, і правила розміщення тексту в цьому прямокутнику.
Параметр fuFormat може містити наступні прапори:
DT_CENTER
DT_LEFT
DT_RIGHT
задають режим вирівнювання тексту по горизонталі.
DT_SINGLELINE
вказує, що текст повинен розміщуватися в одному рядку
DT_VCENTER
DT_TOP
DT_BOTTOM
використовуються тільки з DT_SINGLELINE і вказують розміщення рядка тексту по вертикалі.
DT_WORDBREAK
дозволяє переносити (розбивати) слова.
DT_EXPANDTABS
дозволяє розпізнавати символи табуляції. За замовчуванням використовуються табулятор на кожній 8 позиції.
DT_TABSTOP
задає крок табуляції. Старший байт містить число символів в одному кроці табулятора.
Всі описані нижче прапори несумісні з прапором DT_TABSTOP:
DT_EXTERNALLEADING
включає у висоту рядка пропуск між рядків. За замовчуванням цього не робиться.
DT_NOCLIP
виконує висновок ігноруючи вказаний прямокутник. Це іноді прискорює процес виводу.
DT_NOPREFIX
виключає обробку префікса & як підкреслення поточного символу. За замовчуванням префікс & позначає підкреслений символ, послідовність & & - одиночний &.
DT_CALCRECT
тільки обчислює розмір прямокутника і не здійснює виведення. Якщо використовується DT_SINGLELINE, то визначається ширина прямокутника, а якщо текст багаторядковий, то обчислюється висота, достатня для розміщення заданого тексту при фіксованій ширині.
Остання розглянута нами функція для виведення тексту використовується порівняно рідко. Вона часто застосовується системою відображення меню для вказівки недоступних пунктів, зафарбовує сірим кольором. Для цього довелося розробити окрему функцію тому, що не всі відеоадаптери та монітори забезпечують достатню кількість градацій сірого кольору (наприклад, монохроматичні монітори). У цьому випадку використовується висновок лінії не чистим кольором, а змішаним.
Так як Windows використовує в якості кольору тексту тільки чистий колір, то довелося розробити спеціальну функцію, яка дозволяє здійснювати виведення змішаним кольором. Основна ідея її роботи полягає в наступному:
BOOL GrayString (hDC, hBrush, lpfnDraw, lParam, cChars, nX, nY, nWidth, nHeight);
текст виводиться чорним кольором в проміжний контекст пристрою, асоційований з білим бітмапами
виконується операція OR між виведеним текстом і пензлем, що складається з чорних і білих точок у шаховому порядку (Функція PatBlt (), ROP код дорівнює 0xFA0089 (DPo))
отриманий бітмапами переноситься на контекст-приймач зображення за допомогою операції BitBlt () з ROP-кодом 0xB8074A (PSDPxax), що реалізує наступні дії:
((Destination ^ pattern) & source) ^ pattern
в результаті всі пікселі контексту-приймача, відповідні білим пікселам створеного бітмапами, залишаються незміненими, а всі пікселі, відповідні чорним пікселам бітмапами, виявляються зафарбовані пензлем, заданої параметром hBrush у виклику функції GrayString ().
Інші параметри цієї функції:
hDC - контекст-приймач зображення;
lpfnDraw - функція, що здійснює виведення в проміжний контекст пристрою. Якщо цей параметр NULL, то використовується TextOut (), інакше Ви повинні передати адресу пов'язаної з вашим застосуванням функції (див. процедуру MakeProcInstance ()), що має наступний вигляд:
BOOL CALLBACK GrayStringProc (hDC, lpParam, cChars) {
/ / Drawing text
return 1;}
параметри lParam і cChars передаються з функції GrayString (); hDC вказує проміжний контекст пристрою. Висновок треба здійснювати починаючи з позиції 0,0;
Функція повинна повернути не 0, якщо все в порядку. Значення 0 вказує на помилку і приводить до завершення роботи функції GrayString ().
lParam - якщо параметр lpfnDraw дорівнює NULL, то lParam є далеким покажчиком на виведену рядок символів, інакше це може бути будь-яке значення, яке використовується функцією GrayStringProc ();
cChars - число символів в виведеної рядку;
nX і nY - позиція для виведення
nWidth - розміри створюваного проміжного бітмапами, який буде nHeight - приймати рядок.
Деякі особливості застосування функції GrayString ():
контекст-приймач зображення повинен використовувати координати MM_TEXT
атрибути контексту-приймача НЕ копіюються в проміжний контекст пристрою, він використовує значення атрибутів за умовчанням;
якщо cChars дорівнює 0, то GrayString () припускає, що lParam є покажчиком на asciiz рядок (що закінчується нульовим байтом) і обчислює її довжину
якщо nWidth і nHeight рівні 0, то GrayString () буде сам обчислювати розміри бітмапами для рядка, зазначеної параметрами lParam і cChars
більшість сучасних адаптерів дозволяють відображати достатнє число відтінків сірого для виведення сірих рядків. Ви можете перевірити, який метод треба використовувати (GrayString () або TextOut () з сірим кольором тексту), скориставшись функцією
rgbGrayText = GetSysColor (COLOR_GRAYTEXT);
якщо rgbGrayText одно 0 (чорний колір), то Ви повинні використовувати функцію GrayString (), інакше Ви можете встановити сірий колір і скористатися функцією TextOut ():
SetTextColor (hDC, rgbGrayText); ...
Шрифти
Після вивчення основних засобів роботи з текстом ми перейдемо до вивчення шрифтів. Для того, що б подальший матеріал був більш зрозумілим, нам треба розібратися з основами класифікації шрифтів в Windows. При розгляді даної класифікації слід мати на увазі її умовність і неминуче застосування типографических термінів. В даний час не існує загальноприйнятої системи класифікації шрифтів, більше того багато термінів трактуються зовсім по-різному в різних системах класифікації. (Так, наприклад, italic може позначати похилий шрифт, похилий курсив або вузький шрифт, у якого горизонтальні штрихи товщі вертикальних).
Всі шрифти в Windows можуть бути розділені на дві групи:
шрифти пристрої
шрифти GDI
Зі шрифтами пристроїв ми розбиратися не будемо, тому що це дуже специфічні шрифти та їх властивості жорстко визначені можливостями апаратури. Основну увагу ми зосередимо на шрифтах GDI.
Класифікація шрифтів GDI
Для шрифтів GDI може бути виділено декілька класифікуючих ознак, що визначають особливості шрифту.
по нахилу символів:

Зазвичай типи Slanted і Italic між собою не поділяють, як правило застосовується термін Italic для позначення будь-якого похилого шрифту.
по ширині окремих символів:

Усі символи Шрифт фіксованої ширини мають однакову ширину і однакові інтервали між символами (як, наприклад, шрифт друкарської машинки). Символи пропорційного шрифту можуть мати різну ширину і навіть різні інтервали між символами.
По ширині лінії, яка використовується для відображення символу:

В інших системах класифікації цю характеристику іноді замінюють на кількісне відношення ширини горизонтальних ліній до ширини вертикальних. Така характеристика називається контрастністю шрифту. Fixed Stroke шрифти мають контрастність 1:1, нормальна контрастність відповідає 4:5, середній контраст - 1:2 і т.д.
За оформленням символів:

Ця ознака теж може бути представлений більш широко, так як оформлення зарубок надзвичайно різна - вони можуть бути перпендикулярні штрихами, з'єднуватися з ними під значними кутами, по-різному сполучатися з штрихом (із закругленими або без), мати різну форму.
по "жирності" символів:

Цей критерій називають також "вагою" символів, при цьому говорять про особливо легких, легенів, нормальних і пр. шрифти. Оцінюють його по середній кількості зафарбованих (чорних) точок в одному рядку, довжиною 1000 точок. Типовими значеннями є 400 (нормальний шрифт) і 700 або 800 (жирний шрифт) за розміром символів. Розмір визначається висотою символу, вираженої в точках. Так, наприклад, говорять про шрифт висотою 12 точок. З точки зору друкарні найбільш застосовні шрифти 8-10 точок, шрифти 6 і менше точок вважаються дрібними, 12 і більше, великими.

При відображенні на дисплеї цими розмірами слід користуватися дуже обережно, тому що вертикальний дозвіл екрану явно недостатньо для якісного зображення застосовуваних розмірів шрифту (6-10 точок).
З цієї причини для дисплеїв передбачена спеціальна характеристика, звана "логічний дюйм". Як правило один логічний дюйм відповідає приблизно 1.4-1.5 звичайного. При використанні логічного дюйма замість нормального зображення всіх об'єктів збільшуються, що дещо компенсує низьку роздільну здатність екрану.
Коли ми розглядали системи координат пристрою, то ми відзначали систему MM_TWIPS, в якій одній одиниці відповідає 1 / 20 частина точки (1 / 1440 дюйма). Ця система активно застосовується при роботі з принтером. Однак при роботі з екраном ця система стає менш зручною, так як зручніше було б застосовувати логічний дюйм замість фізичного. Для цього нам доведеться самим спроектувати необхідну систему координат:
/ / Встановимо систему координат з незбалансованими
/ / Масштабними коефіцієнтами по осях
SetMapMode (hDC, MM_ANISOTROPIC);
/ / В одному логічному дюймі повинно бути, як і в звичайному, 1440 точок
/ / Тому 1440 логічним одиницям
SetWindowExt (hDC, 1440, 1440);
/ / Повинен відповідати стільки фізичних од., Скільки
/ / Їх знаходиться в одному логічному дюймі.
SetViewportExt (hDC, GetDeviceCaps (hDC, LOGPIXELSX), GetDeviceCaps (hDC, LOGPIXELSY));
Таку систему координат зручно застосовувати в системах, які реалізують WYSIWYG технологію.
Одним з найважливіших ознак є тип шрифту, який визначає можливості його застосування на різних пристроях. У Windows шрифти діляться на три групи, залежно від їх організації:

Пояснимо основні відмінності шрифтів:
Растрові шрифти:


Представляють із себе набір бітових образів відображуваних символів. Відрізняються найбільш високою швидкістю виводу і найвищою якістю тексту, так як кожен символ розробляється вручну.
Недоліками є обмежена кількість розмірів шрифту (числом наданих розробником розмірів бітмапами), можливість змінювати розмір символів тільки в кратне число разів, причому при цьому втрачається якість, і неможливість виведення похилих рядків тексту.
Можлива програмна реалізація похилих і жирних накреслень на основі базового варіанту.
Шрифти можуть відображатися тільки на пристроях, що підтримують обмін бітовими образами (плоттер, наприклад, цього не робить). Крім того, різні пристрої вимагають різних правил розробки растрових шрифтів. Внаслідок цього, наприклад, шрифти, застосовувані для дисплея, не можуть бути використані для друку на матричному принтері, хоча ці пристрої мають близькі дозволяють здібності.
Векторні шрифти:

Описують кожен відображається символ як набір сполучених ліній. Так як для виведення символу потрібно промальовування всіх ліній, то це самі повільні в роботі шрифти.
Перевагою є можливість виведення символів будь-якого необхідного розміру. Проте якість шрифту досить висока тільки при середніх розмірах символів, так як у маленьких символів окремі лінії можуть "злипатися", а для великих символів стає помітною їх структура - тобто видно окремі лінії якими вони намальовані (товщина векторів незалежно від розміру дорівнює 1 одиниці пристрої ).
Символи можуть нахилятися як у вигляді всього рядка, так і всередині рядка. Програмно можливе створення похилих і жирних накреслень.
Шрифти можуть відображатися на будь-яких графічних пристроях. Це єдиний вид шрифтів, який застосовується на плоттерах.
TrueType шрифти:

Це найскладніші шрифти Windows. Вони описують основний вид обриси символу, що складається з прямих і кривих ліній. Крім того вони містять спеціальну інформацію, потрібну для масштабування символів з мінімальними спотвореннями образу.
При виведенні спочатку готується растровий образ потрібного розміру, а потім здійснюється виведення тексту. Швидкість виведення така ж, як і растрових шрифтів, проте при підготовці шрифту нового типу або розміру деякий час йде на формування растрових образів символів.
При виведенні символів невеликого розміру якість невисока, тому що автоматична генерація якісних бітмапами малого розміру практично неможлива. При цьому TrueType шрифт часто замінюється на растровий шрифт малого розміру (Small Fonts). У всіх інших випадках це найякісніші шрифти.
Можливість легкого отримання якісного шрифту будь-якого розміру робить TrueType шрифт самим застосовуваним в WYSIWYG технології.
TrueType шрифти дозволяють відображати похилі рядки тексту.
Особливістю TrueType шрифтів є те, що програмно неможливо створити жирні і похилі накреслення, тому кожен TrueType шрифт найчастіше розробляється в чотирьох примірниках: нормальному, похилому, жирному і похилому-жирному. Відображається лише на пристроях, що підтримують обмін бітовими образами.
TrueType шрифти відрізняються від інших шрифтів ще й тим, що дозволяють використовувати різні інтервали між різними символами. При цьому виділяють пари символів (kerning pairs) і для них задають відносний зсув (наближення або видалення), для отримання найбільш якісного тексту. Завдання "кернінгу" здійснюється розробником шрифту.
Інший найважливіший ознака класифікації шрифтів пов'язаний з розташуванням символів у кодовій таблиці. На жаль, розробники Windows не передбачили серйозної підтримки багатомовних середовищ. Вважається, що шрифт може відноситися до однієї з чотирьох можливих груп шрифтів.

При цьому під ANSI мається на увазі та кодова таблиця, яка прийнята в даній версії Windows. Строго кажучи, ANSI існує лише в англомовному варіанті Windows. Так, наприклад, всі русифікатори замінюють стандартну кодову таблицю ANSI на власну, містить російські літери. При цьому, з точки зору Windows, вона буде все одно вважатиметься ANSI. У русифікованому варіанті кодової таблиці Windows російські букви займають місця з 192 по 255 включно.
Аналогічно, під OEM мається на увазі кодова таблиця, прийнята в DOS. Зазвичай це 437 кодова таблиця, проте можливе вживання і інших кодових таблиць. Як правило, для русифікації DOS застосовується альтернативне кодування ГОСТ, на основі якої була розроблена 866 кодова таблиця (входила до складу MS DOS 4.0 постачається на території СРСР).
Кодова таблиця SYMBOL в Windows позначає шрифт, що складається з різних не-алфавітних символів, наприклад стрілок, піктограммок і пр. і остання кодова таблиця SHIFTJIS має дуже специфічне застосування, розраховане на японську абетку KANJI. У цій абетці передбачено деякі символи, що задаються послідовністю з двох байт.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лекція
56.7кб. | скачати


Схожі роботи:
Засоби введення виведення в Сі
Пристрій введення-виведення
Пристрої введення-виведення інформації
Пристрої введення виведення інформації
Пристрої введення-виведення інформації
Периферійні пристрої введення і виведення інформації
Проектування автоматичного інтерфейсу введення-виведення
Базова система введення-виведення BIOS ПК
Принтер як пристрій виведення Види принтерів
© Усі права захищені
написати до нас