GARANTIR DESCONTO

Fórum Valor ASCII de Caracteres... #260086

26/11/2004

0

:?: Olá a todos.
Preciso ler o campo Cli_Nome da tabela e a cada caracter saber qual o seu código ASCII equivalente.
Quando faço uso da função Ord o programa da um erro – Incompatible Types
Preciso concatenar os Valores numa String.


i , j : Integer;
M_Campo , M_Cadeia , M_Chr: String;
V_Campo : Integer;

begin
Clientes.Open;
Clientes.First;

for i := 1 to Clientes.RecordCount do
begin
M_Cadeia := ´´;
M_Campo := Clientes.FieldValues[´Cli_Nome´];

for j := 1 to length(M_campo) do
Begin
M_Chr := Copy(M_Campo , j , 1 );

M_Cadeia := M_Cadeia + M_Chr + ´:´;

*ERRO M_Cadeia := M_Cadeia + M_Chr + ´:´ + IntToStr(Ord(M_Chr));

end;

M_Campo := Clientes.FieldValues[´Cli_Cod´] + ´ - ´;
M_Campo := M_Campo + M_Cadeia;
ListBox1.Items.Add(M_Campo);
Clientes.Next;
end;
end;

Obrigado.
Neto


Neto

Neto

Responder

Posts

26/11/2004

Massuda

*ERRO M_Cadeia := M_Cadeia + M_Chr + ´:´ + IntToStr(Ord(M_Chr));

O problema é que o Ord() espera apenas um único caractere e M_Chr, por ser uma string, pode representar um ou mais caracteres. A correção simples (mantendo o que você já fez) seria:
M_Cadeia := M_Cadeia +  M_Chr + ´:´ + IntToStr(Ord(M_Chr[1]));
Assim você pega o primeiro (e, no caso, único) caractere da string.


Responder

Gostei + 0

26/11/2004

Paulo_amorim

Olá

Nesse caso seria melhor declarar M_Chr como Char, e não String.

:idea: Utilize BBCode com as tags [ code ], pois fica mais fácil a leitura do código...

Até+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar