Delphi таблица символов - IT Справочник
Llscompany.ru

IT Справочник
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Delphi таблица символов

ASCII таблица символов

Ниже представленна русская таблица кодов ASCII.

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

ASCII таблица

В ASCII таблице сивмолы от 1-31 являются кодами клавиш.

Назначение специализированных символов таблицы ASCII

ASCII символы. Форматирование

BS

Backspace (Возврат на один символ). Указывает на движение механизма печати или курсора дисплея назад на одну позицию.

HT

Horizontal Tabulation (Горизонтальное Табулирование). Указывает на движение механизма печати или курсора дисплея до следующей предписанной ‘позиции табуляции’.

LF

Line Feed (Перевод строки). Указывает на движение механизма печати или курсора дисплея к началу следующей строки (на одну строку вниз).

VT

Vertical Tabulation (Вертикальное Табулирование). Указывает на движение механизма печати или курсора дисплея к следующей группе строк.

FF

Form Feed (Перевод страницы). Указывает на движение механизма печати или курсора дисплея к исходной позиции следующей страницы, формы или экрана.

CR

Carriage Return (Перевод каретки). Указывает на движение механизма печати или курсора дисплея к исходной (крайней левой) позиции текущей строки.

ASCII символы. Передача данных

SOH

Start of Heading (Начало Заголовка). Используется для указания начала заголовка, который может содержать информацию о маршрутизации или адрес.

STX

Start of Text (Начало Текста). Указывает на начало текста и одновременно на конец заголовка.

ETX

End of Text (Конец Текста). Используется при завершении текста, который был начат с символа STX.

ENQ

Enquiry (Запрос). Запрос идентификационных данных (типа «Кто Вы?») от удаленной станции.

ACK

Acknowledge (Подтверждение). Приемное устройство передает этот символ отправителю в качестве подтверждения успешного приема данных.

NAK

Negative Acknowledgement (Неподтверждение). Приемное устройство передает этот символ отправителю в случае отрицания (неудачи) приема данных.

SYN

Synchronous/Idle (Синхронизация). Используется в синхронизированных системах передачи. В моменты отсутствия передачи данных система непрерывно посылает символы SYN для обеспечения синхронизации.

ETB

End of Transmission Block (Конец Блока Передачи). Указывает на конец блока данных для коммуникационных целей. Используется для разбиения на отдельные блоки больших объемов данных.

ASCII символы. Разделительные знаки при передаче информации

FS

File Separator (Разделитель файлов).

GS

Group Separator (Разделитель групп).

RS

Record Separtator (Разделитель записей).

US

Unit Separator (Разделитель элементов).

ASCII символы. Другие символы

NUL

Null. (No character — нет данных). Используется для передачи в случае отсутствия данных.

BEL

Bell (Звонок). Используется для управления устройствами сигнализации.

SO

Shift Out. Указывает, что все последующие кодовые комбинации должны интерпретироваться согласно внешнему набору символов до прихода символа SI.

SI

Shift In. Указывает, что последующие кодовые комбинации должны интерпретироваться согласно стандартному набору символов.

DLE

Data Link Escape (Переключение). Изменение значения идущих следом символов. Используется для дополнительного контроля или для передачи произвольной комбинации бит.

DC1, DC2, DC3, DC4

Device Controls (Контроль Устройства). Символы для управления вспомогательными устройствами (специальными функциями).

CAN

Cancel (Отмена). Указывает, что данные, который предшествовали этому символу в сообщении или блоке, должны игнорироваться (обычно в случае обнаружения ошибки).

EM

End of Medium (Конец Носителя). Указывает на физический конец ленты или другого носителя информации

SUB

Substitute (Заместитель). Используется для подмены ошибочного или недопустимого символа.

ESC

Escape (Расширение). Используется для расширения кода, указывая на то, что последующий символ имеет альтернативное значение.

(sp)

Space (Пробел). Непечатаемый символ для разделения слов или перемещения механизма печати или курсора дисплея вперед на одну позицию.

DEL

Delete (Удаление). Используется для удаления (стирания) предыдущего знака в сообщении

Люди а что лучше выбрать basic 2010 или basic 06 и почему ?

Хоть вб6 и прост, но он, к сожалению, устарел. По этому советую vb 2010.

FireDay — напиши какую-нибудь полезную программу на VB6 и проверим просто этот язык или нет:]

Начни изучать Visual basic 6, а потом будет легче освоить VB.NET.

вб6 в отличие от 2010 не перегружен ничем лишним, все что можно в 2010(кроме некоторых фич) можно повторить и в вб6, имеется в виду функциональность кода

Полный бред, в vb6 нет ООП, и из-за этого нельзя писать серьезные приложение.
И работать в команде тоже не возможно

«»»Release [03.05.2012 17:23]
FireDay — напиши какую-нибудь полезную программу на VB6 и проверим просто этот язык или нет:]»»»
-Уже написал (и далеко не одну).
«»»Саня [07.06.2012 12:47]
Полный бред, в vb6 нет ООП, и из-за этого нельзя писать серьезные приложение.
И работать в команде тоже не возможно»»»
-Не знаешь, не пиши. Не зря говорят, промолчишь — за умного сойдешь. ООП- объектно ориентированное программирование. ВБ — прородитель всего ООП.

🙂
В VB даже наследования нет, абстрактных классов, интерфейсов ))
Там вообще ни чего нет что было бы похоже на ООП.

И не вб прородитель, а скорее с++ )

Я имею ввиду vb6, в vb.net все очень хорошо и продуманно сделано.

«Саня», для глупых еще раз повторю: ВБ — прородитель всего ООП. Не веришь? Интернет в помощь.

Извиняюсь за «для глупых».

САНЬ,напиши на vb.Net то что невозможно написать на vb6 и выложи исходник или статью.. .. Если не зделаешь то ты будишь позор со своими высказываниями (^_^)/!

Читать еще:  Как понизить пинг в css

vb.Net кое в чём подстроен для новичков, высвечивая всякие подсказки, но там всякого лищнего приходится писать

Сань
И САМОЕ ГЛАВНОЕ я могу сделать на vb6 то что ты не сможешь на vb.Net

VB6 и VB.NET он и так подстроен для новичков.. Для школьников и для студентов..

Не C++, а Smalltalk.

Вот вы спорите, кто прародитель и т.д. Легче было посмотреть в интернете, и узнаете, что прародитель всего программирование является Simula 67(Симула 67 «1967 год»), ведь от него появился Smalltalk, потом Turbo Pascal и С++ и т.д.

Fortran 1957 год,
Lisp 1958 год,
Algol-58 1958 год,
COBOL 1959 год,
SNOBOL 1962 год,
BASIC 1964 год.
SC, таки есть языки программирования и постарше чем Симула67.

Админ у меня екзешничек есть к этой теме.
Если есть желание посмотреть пиши, скину.

Господи, какой админ. Тут ветер гуляет уже много лет, а я-одинокий сталкер.

Символы

Delphi site: daily Delphi-news, documentation, articles, review, interview, computer humor.

Для хранения и обработки символов используются переменные типа AnsiChar и whideChar. Тип AnsiChar представляет собой набор ANSI-символов, в котором каждый символ кодируется восьмиразрядным двоичным числом (байтом). Тип WhideChar представляет собой набор символов в кодировке Unicode, в которой каждый символ кодируется двумя байтами.

Значением переменной символьного типа может быть любой отображаемый символ:

специальный символ, например, «новая строка».

Для обеспечения совместимости с предыдущими версиями поддерживается тип Char, который эквивалентен AnsiChar.

Переменная символьного типа должна быть объявлена в разделе объявления переменных. Инструкция объявления символьной переменной в общем виде выглядит так:

char — ключевое слово обозначения символьного типа.

Как и любая переменная программы, переменная типа char может получить значение в результате выполнения инструкции присваивания. Если переменная типа char получает значение в результате выполнения операции присваивания, то справа от знака := должно стоять выражение типа char, например, переменная типа char или символьная константа — символ, заключенный в кавычки.

В результате выполнения инструкций

переменная cl получает значение присваиванием значения константы, а переменная с2 — присваиванием значения переменной cl (предполагается, что переменные cl и с2 являются переменными символьного типа).

Переменную типа char можно сравнить с другой переменной типа char или с символьной константой. Сравнение основано на том, что каждому символу поставлено в соответствие число (см. приложение 2 «Кодировка символов в Windows»), причем символу ‘о’ соответствует число меньшее, чем символу ‘э’, символу ‘а’ — меньшее, чем ‘в’, символу ‘z’ — меньшее, чем а. Таким образом, можно записать:

В тексте программы вместо символа можно указать его код, поставив перед числом оператор #. Например, вместо константы ‘в’ можно записать #193. Такой способ записи, как правило, используют для записи служебных символов или символов, которые во время набора программы нельзя ввести с клавиатуры. К примеру, часто используемый при записи сообщений символ «новая строка» записывается так: #13.

В программах обработки символьной информации часто используют функции ehr и ord. Значением функции ehr является символ, код которого указан в качестве параметра. Например, в результате выполнения инструкции с:=спг(32) переменной с будет присвоено значение пробел. Функция ога позволяет определить код символа, который передается ей в качестве параметра. Например, в результате выполнения инструкции к:=ога(‘*’) переменная к будет содержать число 42 — код символа *.

Программа, текст которой приведен в листинге 3.1, выводит таблицу кодировки букв русского алфавита. Вид окна программы представлен на рис. 3.1. Основную работу выполняет процедура обработки события onActivate, которая формирует и выводит в поле метки (ьаЬеН) таблицу. Событие OnActivate происходит при активизации формы приложения и, поэтому, процедура тгот1.гогтАс1:гусЛе выполняется автоматически, сразу после появления формы на экране.

Рис. 3.1. Форма приложения во время разработки

Листинг 3.1. Таблица символов

Рис. 3.2. Форма приложения во время работы

var Forml: TForml; implementation

<$R *.DFM>procedure TForml.FormActivate(Sender: TObject); var st:string; // таблица формируется как строка символов dec: byte; // код символа

i,j:integer; // номер строки и колонки таблицы

Форма рассматриваемого приложения содержит только один компонент — поле метки (Labeil). Для того чтобы колонки таблицы имели одинаковую ширину, свойству Labell.Font.Name следует присвоить имя шрифта, у которого Все СИМВОЛЫ ИМеЮТ Одинаковую Ширину, Например, Courier New Cyr.

Вид окна приложения во время работы приведен на рис. 3.2.

Delphi 2010. Работа с клавиатурой в условиях Unicode.

Как я уже отмечал, начиная с Delphi 2009 введена полная поддержка Unicode. Это замечательно, необходимо и важно. Однако, как ни крути, но не все толком понимают как работать-то? Я сейчас не имею ввиду профессиональных программистов, работающих постоянно с Delphi. Речь идёт о простых любителях, начинающих программистах, которые большую часть информации получают из Сети, в результате чего возникают всякие непредвиденные ситуации. Вот, например, ситуация — надо написать программу, которая будет отлавливать нажатия клавиш клавиатуры и записывать их в лог. В Интернет есть масса примеров как организовать глобальный хук на клаву и считывать в лог виртуальные и скан-коды клавиш (подобная статья есть и у нас в блоге). Естественно, начинающий программист просто качает готовый пример и пробует транслировать эти самые коды в буковки…а они просто так не транслируются — получаем либо «кракозябры» либо нормальные буквы но не те. И сидит такой начинающий программист, чешет затылок и другие части тела, не понимая что он делает не так? В лучшем случае лезет в опять в Сеть и с огромной вероятностью натыкается на подобного рода «рецепты-объяснения»:

Читать еще:  Выберите единицы являющиеся в си основными

В событиях OnKeyDown и OnKeyUp, Key является беззнаковым двухбайтовым (Word) значением, которое представляет виртуальную клавишу Windows. Для получания значения символа можно воспользоваться функцией Chr. В событии OnKeyPress параметр Key является значением Char, которое представляет символ ASCII.

Вроде все правильно. НО не для Delphi 2009-2010, при работе с русскими символами, так как во-первых, введена поддержка Unicode, а во-вторых ASCII никогда с роду не содержала русских букв (см.историю разработки кодировок). И никогда, ни при каких обстоятельствах Вы не сможете перевести просто так виртуальную клавишу в русский символ функцией Chr.

Если не верите — проделайте такой простой эксперимент: откройте Delphi 2009-2010, создайте новое приложение и в событии onKeyUp для главной формы напишите такой код:

Теперь запустите приложение, переключитесь на русский язык и нажмите любую клавишу.

Вот результат нажатия русской буквы «Ы»:


Спрашивается: Чё за фигня? Где моя буковка «Ы»? И, что самое интересное, я ведь нажимал букву без Shift и CapsLock, а мне чего-то буква в верхнем регистре упала? Давайте разбираться в определениях. Так как без четкого знания определений мы с Вами в этих лабиринтах и хитросплетениях не разберемся никогда.

1. Скан-коды, виртуальные код и коды символов

Итак, с клавиатурой связано как минимум три разновидности кодов: скан-код, символьный код и виртуальный код. И далеко не все начинающие программисты понимают различия между ними.
Самая большая путаница со скан-кодами. Для начала, их существует две разновидности. Есть скан-коды «настоящие» — это то, что получает система прямо от клавиатуры, а есть скан-коды которые выдаются после того, как они будут обработаны в BIOS, которая интерпретирует, например, одновременное нажатие клавиш-модификаторов, а также справляется с текущей таблицей кодов символов и отправляет эти скан-коды в буфер клавиатуры.
Теперь посмотрим, как выглядит скан-код в принципе. На рисунке представлена оригинальная 84-кнопочная клавиатура IBM PC. Вот во времена существования этой клавиатуры и назначались скан-коды клавишам. Причем присваивались они слева-направо, начиная с клавиши Esc. Так клавиша Esc получила скан-код 1, а клавиша 1 — код 2 и т.д. Пока не будем кидаться в дебри дополнительных клавиш, которые появились на современных клавиатурах (там есть свои особенности присвоения скан-кодов), а уясним для себя следующее:

Скан-код — это идентификатор клавиши на клавиатуре и он один в чистом виде никак не может сам по себе описать символ в условиях unicode

Теперь двигаемся дальше. Разберемся с виртуальными кодами.

Виртуальные коды — это то, что использует система (Windows) для идентификации клавиш.

То есть, проведя простую аналогию, можно с большим допущением сказать, что виртуальный код клавиши — это тот же скан-код, но только не для BIOS, а для операционной системы, установленной на компьютере пользователя.

С некоторыми из констант, определяющих виртуальный код клавиш Вы можете ознакомиться в модуле windows.pas Delphi. Но, там отсутствуют коды для буквенно-цифровых клавиш, т.к. они совпадают с соответствующими символами из таблицы ASCII .

Теперь, я думаю, становится более-менее ясно почему при нажатии клавиши с буквой «ы» мы в примере получили заглавную букву «S»? Delphi в этом случае сработала идеально правильно — выдала именно виртуальный код клавиши, как и полагается.

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

Для того, чтобы продемонстрировать правильность работы Delphi, немного допишем наш пример.

Delphi таблица символов

Мы уже работали со строковым типом данных String . Однако, как и в случае с цифрами, бывает несколько строковых типов. Строка состоит из набора символов. Компьютер работает в двоичной системе исчисления, он работает только с цифрами. И символы компьютер воспринимает в виде цифр. Для этого в операционной системе существует таблица символов , где каждому символу соответствует какая либо цифра.

Самая первая таблица символов , созданная для операционной системы MS-DOS , называлась ASCII . Эти символы были 7-ми битными, как следствие, таблица содержала максимум 128 символов. Поскольку в одном байте содержится 8 бит , один бит терялся впустую. У этой таблицы были свои языковые расширения, то есть, для каждого языка делалась своя такая таблица .

Для операционной системы Windows была разработана таблица символов ANSI , которая используется по сей день. Эта таблица использует 8-ми битные символы, то есть, содержит 256 символов, от 0 до 255. В Delphi такая таблица используется, как основная. Большее количество символов позволило вставить в таблицу не только основные символы, но и цифры, знаки препинания, специальные символы. Мы будем работать, в основном, с этой таблицей.

Читать еще:  Label caption delphi

Для того, чтобы удовлетворить потребности пользователей других языков, была создана таблица UNICODE . Эта таблица использует 16 бит , и в нее помещается от 0 до 65 535 символов. Эта таблица , начиная с Windows 2000, используется все более широко, и когда-нибудь станет стандартом, но пока что она встречается гораздо реже, чем ANSI .

Имеются следующие строковые типы данных:

ShortString – короткая строка из ANSI символов. Количество символов может быть от 0 до 255. Иными словами, строку длиной более 255 символов в ShortString записать нельзя.

LongString – длинная строка из ANSI символов. Длина строки здесь почти не ограничена, в одну переменную такого типа можно записать текстовый файл с романом «Война и мир». Этот тип используется по умолчанию, то есть, когда мы указываем тип String , подразумевается именно этот тип данных . С ним нам чаще всего и придется работать.

WideString – длинная строка из UNICODE символов. От LongString отличается только тем, что использует иную таблицу символов.

Существует еще один тип строк – PChar . Этот тип работает с процессором совершенно иначе, чем предыдущие типы строк. Он очень неудобен в использовании и остался для совместимости с программами старых версий. Кроме того, встроенные в Windows функции работают именно с таким типом данных, поэтому его все же придется использовать. Когда мы начнем работать с этими функциями, разберем этот тип подробней.

Символьные типы данных

Программисту приходится работать не только со строками, но и с отдельными символами. Символ – это любая буква, цифра, арифметический знак, знаки препинания или пробел . Кроме того, существуют специальные символы, например, символ перехода на новую строку. Delphi поддерживает два типа символьных данных:

AnsiChar – символ ANSI таблицы. Используется по умолчанию, то есть, когда мы указываем тип Char , подразумеваем именно этот тип.

WideChar – символ UNICODE таблицы. Разница между ними такая же, как и у строк этих типов.

Как и в случае со строками, программист обычно объявляет тип Char , что соответствует типу AnsiChar .

Логический тип данных

Логический тип данных используется в условных выражениях. Он необходим для создания логики программы. Условное выражение проверяет – соответствует ли действительность заданному условию? Если соответствует, то выражение возвращает результат True ( Истина ). Если не соответствует, то возвращается False ( Ложь ). Таким образом, логический тип данных может иметь только одно из двух этих значений.

Boolean – логический тип данных.

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

Delphi таблица символов

По умолчанию задается значение этого подсвойства, равное DEFAULT_CHARSET. Для имен шрифтов, принятых в Delphi по умолчанию, это обычно нормальный вариант. Но в ряде случаев полезно для отображения русских текстов с другими шрифтами заменить это значение на RUSSIAN_CHARSET. Это позволит отобразить символы кириллицы для тех шрифтов, для которых при DEFAULT_CHARSET символы кириллицы не отображаются нормально;

Color: TColor — цвет шрифта;

Height: Integer; — высота шрифта в пикселях. Если это значение задано отрицательным, то в размер не входит верхний пиксель каждой строки. Обычно для задания размера используется свойство Size. Это значение связано со свойствами Size и PixelsPerInch (число пикселей на дюйм) следующим соотношением: Height = -Size * PixelsPerInch;

Name: String; — название шрифта;

  • Pitch: TFontPich; TFontPich = (fpDefault, fpFixed, fpVariable); — способ установки ширины символов шрифта. Возможные значения:
    • fpDefault — определен шрифтом;
    • fpFixed — соответствует моноширинным шрифтам;
    • fpVariable — соответствует шрифтам с переменной шириной символов;

    Каждый вид шрифта имеет соответствующий способ определения ширины символов. Есть шрифты с одинаковой шириной всех символов. Есть шрифты, в которых разные символы имеют разную длину. Шрифты с постоянной шириной используются для отображения текстов программ, так как в них удобно делать фиксированные отступы. Но шрифты с различной шириной символов более компактны.

    Установки значений fpFixed или fpVariable заставляет систему искать наилучший способ удовлетворить всем заданным характеристикам шрифта. Иногда это может привести к замене шрифта на шрифт другого, близкого вида. Но иногда вообще может не повлиять на шрифт. Все зависит от конкретного шрифта, или даже версии этого шрифта;

    Size: Integer; — размер шрифта. Если значение отрицательно, то в размер входит верхний пиксель каждой строки;

  • Style: TFontStyles; — стиль шрифта. Возможные значения:
    • fsBold — полужирный;
    • fsItalic — курсив;
    • fsUnderline — подчеркнутый;
    • fsStrikeOut — перечеркнутый.
  • Проиллюстрируем использование некоторых из этих подсвойств на конкретном примере. Расположим на форме два компонента TListBox, в каждом из которых, используя свойство Items, наберем указанные значения (рисунок 4):

    Рис.4. Внешний вид проекта

    В обработчике OnClick кнопки (компонент TButton) разместим следующие операторы:

    Обратите внимание на то, что подсвойство Style является множеством, поэтому при работе с ним использованы конструкции, предназначение для работы с множествами.

    Ссылка на основную публикацию
    ВсеИнструменты 220 Вольт
    Adblock
    detector