Ir para conteúdo
Fórum Script Brasil
  • 0

O faz a função Chr e Ord Ex: chr(ord(variavel));


djfarinha

Pergunta

1 resposta a esta questão

Posts Recomendados

  • 0
alguém pode me explica o que essa funçao faz:

chr(ord("varialvel");

O função Ord retorna um valor inteiro para qualquer tipo ordinal.

É usado principalmente para converter carácter ou enumerações em um numero equivalente.

1 function Ord ( Arg : AnsiChar | Char | WideChar | Enumeration | Integer ) : Integer;

2 function Ord ( Arg : Int64 ) : Int64;

exemplo:

var
  A   : AnsiChar;
  C   : Char;
  W   : WideChar;
  E   : Boolean;
  I   : Integer;
  I64 : Int64;

begin

  A   := 'A';
  C   := 'C';
  W   := 'W';
  E   := True;
  I   := 22;
  I64 := 64;

  ShowMessage('A = '+IntToStr(Ord(A)));
  ShowMessage('C = '+IntToStr(Ord(C)));
  ShowMessage('W = '+IntToStr(Ord(W)));
  ShowMessage('E = '+IntToStr(Ord(E)));
  ShowMessage('I = '+IntToStr(Ord(I)));
  ShowMessage('I64 = '+IntToStr(Ord(I64)));
end;

Resultados

   A = 65
   C = 67
   W = 87
   E = 1
   I = 22
   I64 = 64
O função Chr converte um valor inteiro ( IntValue ) em um AnsiChar ou WideChar 1 function Chr ( IntValue : Integer ) : AnsiChar; 2 function Chr ( IntValue : Integer ) : WideChar; exemplo:
var
  tab  : char;
  crlf : string;
begin

  tab := Chr(9);
  crlf := Chr(13)+Chr(10);
  ShowMessage('Hello'+tab+'World');
  ShowMessage('');
  ShowMessage('Hello'+crlf+'World');
  ShowMessage('');

end;
Podemos lidar com os caracteres individualmente, ao invés de inseridos em strings, usando a variável "char".
var
  Letra: char;
begin
  Letra:= 'A';
end;
É preciso ter cuidado aqui pois a variável Letra não é uma string de um único caracter e sim apenas um único caracter. Para usar o código ASCII da letra, ao invés da sua representação gráfica, é preciso usar antes o sinal "#". Por exemplo Letra:= #65 é o mesmo que Letra:= 'A', pois 65 é o código ASCII para a letra "A". O Delphi possui diversas funções pré definidas, que são usadas em conjunto com as strings. As principais são: chr(X) - Fornece um caracter a partir do seu código ASCII (X pode ser uma expressão numérica). Por exemplo:
Letra:= chr(65);
Letra:= chr(55 + 10);
ord(X) - Fornece o código ASCII da letra especificada. Exemplo (Valor é uma variável integer):
Valor:= ord('A');
Valor:= ord(Nome[1]);
Outro exemplo: Como Criptografar dados no Delphi? Resposta:
Function EnDeCripta (Texto : String; Chave: Word) : String;
var I: Integer; Saida : String;
begin
Saida := \'\';  { Atribuímos o valor inicial da variável como sendo uma String vazia} 

For I := 1 to Length (Texto) do  {Aqui criamos laço “FOR DO“ indo de 1 ao tamanho em bytes da variável a ser criptografada, atribuindo o valor numérico à variável “I”}

Saida := Saida + Char ( Not ( Ord ( Texto[I] ) - Chave ) );  {Este é o ponto-chave da função, pois ele após percorrer cada letra da String(Texto) toma as seguintes medidas:

Result := Saida; 
{ Result é o termo usado para receber o resultado da nossa função e lançá-la como resultado da própria função.}
end;

1 - Converte a Letra da posição “I” na String “Texto” em um número Ordinal, e subtraindo-lhe o valor também inteiro da chave que nesta função só pode ser um valor INTEGER .

2 – Após esta conversão e subtração, usamos o operador booleano Not, que inverte o valor de “I”.

Ex.Quando “I” tiver o valor 50 com o Not(I) teríamos –51.

3 – Usando a função Char() podemos transformar o número Ordinal trabalhado em forma de Caracter, segundo tabela ASCII.

Ex.O número ordinal 80, corresponde ao caracter “P“ na tabela ASCII.

4 – E, finalmente, concatenamos(unimos) à variável “Saida” seu valor anterior acrescido textualmente do novo caracter criptografado, trazendo após o último caracter da String, uma outra String desta vez totalmente criptografada, como sendo o conteúdo de “Saida”. }

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...