«Тab» – #9

«Enter» – #13

и возможно, «Esc» – #27.

Несмотря на то, что они не имеют явного представления в виде конкретного обозначения, но они так же записываются в тексте, как и все остальные. То есть, взглянув на строку мы не увидим что там есть символ с кодом «13» («Enter»), но при обработке этой строки последним символом может оказаться символ с кодом «13». Это особенно важно понимать при обработке предварительно сохраненных файлов.

Что в этой таблице является очевидным: мы можем выделить значения чисел от 0 до 9 (коды 48—57); ряд символов пунктуации и специальных знаков (коды 33—47); английские прописные (большие) буквы от A до Z (коды 65—90); английские строчные (маленькие) буквы от a до z (коды 97—122); русские прописные (большие) буквы от А до Я (коды 128—159); русские строчные (маленькие) буквы от а до я (коды 160—175, 224—239) отдельно буквы Ё (240) и ё (241); и элементы псевдографики (коды 176—223).

Для простоты восприятия на рисунке ниже представлена нумерация кодов клавиш стандартной клавиатуры «QWERTY».


Илл.14. Стандартный набор кодов клавиатуры «Qwerty».


На следующем рисунке приведена базовая кодировка ASCII в двоичном, восьмеричном и символьном коде без использования дополнительных языков.


Илл. 15. Различные характеристики кодов ASCII-таблицы символов.




Справка:

ASCII (англ. American standard code for information interchange), – название таблицы кодировки, в которой распространённым печатным и непечатным символам сопоставлены числовые коды. Таблица была разработана и стандартизована в США, в 1963 году.

Так или иначе, если в программе нужно использовать какой-то символ, например для условия выхода из цикла, уточнить его нам поможет простая программа:


Илл.16. Программа вывода кодов символов «по требованию» пользователя: код нажатой клавиши будет отображаться на экране.


Здесь, Key – переменная символьного типа Char отвечает за нажатие клавиш и последующий вывод кода символа на экран.

Строка «If keypressed=true» – «Если нажата клавиша», то переменной «key» присваивается символ нажатой клавиши «readkey». Затем, мы выводим на экран значение символа в таблице (функция ord) и сам символ (key).

Пример ее использования:


Илл. 17. Программа сообщает коды нажатых пользователем клавиш.


Итак, мы разобрались с таблицей символов.

Теперь поговорим о перекодировке.

Как уже упоминалось, Win-кодировка текстового файла отличается от DOS-кодировки, но она необходима для получения данных из открытых источников и удобства представления данных.

Нормализация строк

Для перекодировки строки текста из кодировки Win в DOS нам потребуется следующая процедура DecodeToDOS:


Илл. 18. Процедура для декодирования строки из стандартной кодировки Win в DOS.


Соответственно, обратно из кодировки DOS мы можем «перегнать» текст в кодировку Win (например, для записи в файл).


Илл. 19. Процедура для декодирования строки из стандартной кодировки DOS в кодировку Win.


Также, нам может потребоваться перекодирование не строки (из Win в DOS), а отдельного символа, в этом случае мы используем процедуру DecodeToDOSC:


Илл. 20. Преобразование из кодировки Win в кодировку Dos отдельного символа.


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

Далее, говоря об обработке строковых данных нам регулярно будет требоваться процедура замены подстроки в строке, как приведенная ниже InsInString:


Илл. 21. Замена подстроки в строке на нужный набор символов в процедуре InsInString происходит благодаря несложной конструкции из функций Pos, Length и Copy.