Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   conversion ASCII (https://www.clubdelphi.com/foros/showthread.php?t=43459)

mjjj 11-05-2007 17:27:53

conversion ASCII
 
hola amigos... tengo la siguiente consulta...

necesito transfomar un valor de 2 digitos en formato ASCII, a su equivalente en decimal...

un caso particular seria... tengo el valor 41 en ASCII, el cual corresponde a la letra A... con que codigo puedo hacer esa conversion??

saludos

seoane 11-05-2007 17:48:33

El valor 41 del ejemplo donde lo tienes, en que variable, de que tipo es ???

mjjj 11-05-2007 18:01:16

el valor 41, es un string, en formato Hexadecimal... lo necesito llevar a su equivalente en ASCII... el cual corersponde a la letra A.

lo tengo de la siguiente manera...

la variable S, es una cadena larga, compuesta por numero hexadecimales, de donde saco el valor que necesito de la posicion 8. v4 es integer.

v4:= (ord(s[8]));
sub:=inttohex(v4,2);

la variable sub es una string con el valor 41, lo que necesito es llevar ese valor "41" a su equivalente en ASCII... letra A

espeor me puedan ayudar...

gracias

seoane 11-05-2007 18:07:16

Si poder se puede, pero no entinedo para que lo necesitas :)

Al tema:
Código Delphi [-]
var
  C: Char; // Aqui guardaremos la letra
begin
  C:= Char(StrToInt('$'+sub));
end;

Wellnic 11-05-2007 20:39:31

Cita:

Empezado por mjjj
la variable S, es una cadena larga, compuesta por numero hexadecimales, de donde saco el valor que necesito de la posicion 8. v4 es integer.

...O sea, la variable S contendría algo así: 'F4D245CDAFDDABD5477D'..., ¿no? Entonces, para sacar el valor de la posición 8:

v4:= StrToInt('$'+copy(S, (8*2)-1, 2));

que daría 213, valor decimal de D5.

egostar 11-05-2007 21:20:33

Haber si te sirve esto

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  Entero: integer;
  S,v4: string;
begin
  S := 'F4D245CDAFDDAB41477D';
  v4 := '$'+copy(S, (8*2)-1, 2);
  Entero := StrToInt(v4);
  ShowMessage(v4+'-->'+InttoStr(Entero)+'-->'+Char(Entero));
end;

Edito: Que realmente es lo mismo que te había propuesto seoane.

Salud OS.


La franja horaria es GMT +2. Ahora son las 07:23:27.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi