PDA

Ver la Versión Completa : conversion ASCII


mjjj
11-05-2007, 17:27:53
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:

var
C: Char; // Aqui guardaremos la letra
begin
C:= Char(StrToInt('$'+sub));
end;

Wellnic
11-05-2007, 20:39:31
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


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.