Искусственный интеллект. Строки, контекст и волны на Паскале - страница 17

Шрифт
Интервал


Для простоты восприятия на рисунке ниже представлена нумерация кодов клавиш стандартной клавиатуры «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 отдельного символа.


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