“Caret notation: ^” O que é isso?

Bom dia,

Hoje é 2 de outubro de 2016, dia de votação para prefeito e vereadores, daqui  a pouco irei votar, mas antes de sair quero falar sobre um assunto que chamou minha atenção nessa semana: a “Caret notation: ^”  (Notação com circunflexo ).

Devido a necessidade de imprimir em uma Impressora Bluetooth  sem driver, tive que voltar a estudar a velha tabela dos comandos ASCII e ESC/POS.  E  na tabela ASCII, encontrei uma notação diferente  “Caret notation” (Notação ^ )

Então   decidi escrever um pouco sobre a “Notação ^“.

Na tabela ASCII existem Os sinais não-imprimíveis, conhecidos como caracteres de controle que em editores de texto comuns não são visíveis, se eles não são visíveis como podemos escrever esses caracteres?

Resposta rápida, use a função chr() que converte um decimal  inteiro em um caractere ou agora simplesmente usa e a notação Notação ^  .

agora a explicação:

Notação ^, é uma representação para os caracteres de controle, não-imprimíveis, da codificação de caracteres ASCII. A representação consiste de um circunflexo (^) seguido de uma letra maiúscula; Este dígrafo tem por padrão a correspondência entre a ordem dos códigos ASCII, para caracteres de controle, e a ordem das letras no alfabeto. Por exemplo, o caractere EOT, cujo valor decimal é 4, é representado por ^D, haja visto que D é a quarta letra do alfabeto. O caractere NUL, cujo valor é 0, é representado por ^@ (pois, na tabela ASCII, o caractere @ precede A). O caractere DEL, cujo código é 127, é usualmente representado por ^?, pois o caractere ASCII ‘?’ vem antes de ‘@’ e -1, escrito como uma cadeia de 8 bits e ignorando-se o bit mais a esquerda, coincide com 127. wikipedia

Então, a “Notação ^”  é apenas uma lógica sequencia, onde na tabela ASCII é mapeanda a sequencia dos caracteres não imprimíveis com  a sequencia da primeira letra do alfabeto em letra maiúscula.

Veja como fica a tabela ASCII para os caracteres não-visíveis com a  “Notação ^

Abrev Dec Notação com circunflexo Nome
NUL 0 ^@ Nulo (inglês Null)
SOH 1 ^A Início de cabeçalho (inglês Start of Header)
STX 2 ^B Início de texto (inglês Start of Text)
ETX 3 ^C Fim de texto (inglês End of Text)
EOT 4 ^D Fim de transmissão (inglês End of Transmission)
ENQ 5 ^E Consulta; inquirição (inglês Enquiry)
ACK 6 ^F Confirmação (inglês Acknowledge)
BEL 7 ^G Campainha; sinal sonoro (inglês Bell)
BS 8 ^H Espaço atrás; retorno de 1 caractere (inglês Back-space)
HT 9 ^I Tabulação horizontal (inglês Horizontal Tabulation)
LF 10 ^J Alimentação de linha; mudança de linha; nova linha (inglês Line Feed)
VT 11 ^K Tabulação vertical (inglês Vertical Tabulation)
FF 12 ^L Alimentação de formulário (inglês Form Feed)
CR 13 ^M Retorno do carro; retorno ao início da linha (inglês Carriage Return)
SO 14 ^N Mover para fora; deslocamento para fora (inglês Shift Out)
SI 15 ^O Mover para dentro; deslocamento para dentro (inglês Shift In)
DLE 16 ^P escape do linque de dados; escape de conexão (inglês Data-Link Escape)
DC1 17 ^Q Controle de dispositivo 1 (inglês Device Control 1)
DC2 18 ^R Controle de dispositivo 2 (inglês Device Control 2)
DC3 19 ^S Controle de dispositivo 3 (inglês Device Control 3)
DC4 20 ^T Controle de dispositivo 4 (inglês Device Control 4)
NAK 21 ^U Confirmação negativa (inglês Negative-Acknowledge)
SYN 22 ^V Estado ocioso síncrono; espera síncrona (inglês Synchronous Idle)
ETB 23 ^W Bloco de fim de transmissão (inglês End of Transmission Block)
CAN 24 ^X Cancelar (inglês Cancel)
EM 25 ^Y Fim de mídia; fim do meio (inglês End of Medium)
SUB 26 ^Z Substituir (inglês Substitute)
ESC 27 ^[ Escapar (inglês Escape)
FS 28 ^\ Separador de arquivos (inglês File Separator)
GS 29 ^] Separador de grupos (inglês Group Separator)
RS 30 ^^ Separador de registros (inglês Record Separator)
US 31 ^_ Separador de unidades (inglês Unit Separator)
DEL 127 ^? Deletar (inglês Delete)

https://pt.wikipedia.org/wiki/ASCII

e agora como usa isso em Delphi?

Exemplo : Mostrando Chr() e ^ 
var
tab  : char;
crlf : string;
begin
// Show the use of Chr
tab := Chr(9);
crlf := Chr(13)+Chr(10);
ShowMessage(‘Hello’+tab+’World’);
ShowMessage(”);
ShowMessage(‘Hello’+crlf+’World’);
ShowMessage(”);

// Show the equivalent use of ^
tab := ^I;  // I = 9th capital of the alphabet
crlf := ^M^J;  // M = 13th, J = 10th letters
ShowMessage(‘Hello’+tab+’World’);
ShowMessage(”);
ShowMessage(‘Hello’+crlf+’World’);
end;

http://www.delphibasics.co.uk/RTL.asp?Name=Chr

Está ai, mais um detalhe que pode fazer a diferença no seu dia a dia.

Abraços e até a próxima!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s