Fórum Hexadecimal #293417
27/08/2005
0
Olá pessoal beleza?
Estou com uma duvida, como eu faço para pegar um valor em hexa e voltar ao valor original em AScii?
Exemplo:
A pessoa digita no edit1 a palavra ´Delphi´ e eu retorno ´44656C706869´ no edit2.
Como eu faço isso ao contrario?
Exemplo:
A pessoa digita no edit1 o valor ´44656C706869´ e eu retorno ´Delphi´ no edit2.
estou usando uma função q eu peguei aqui no forum:
Aguardo uma ajuda!
Estou com uma duvida, como eu faço para pegar um valor em hexa e voltar ao valor original em AScii?
Exemplo:
A pessoa digita no edit1 a palavra ´Delphi´ e eu retorno ´44656C706869´ no edit2.
Como eu faço isso ao contrario?
Exemplo:
A pessoa digita no edit1 o valor ´44656C706869´ e eu retorno ´Delphi´ no edit2.
estou usando uma função q eu peguei aqui no forum:
function TForm1.MyStrToHex(Texto: String): string; var Tamanho,i : integer; PalavraHex : String; begin Tamanho := Length(Texto); for i := 1 to Tamanho do begin PalavraHex:= PalavraHex + IntToHex(Ord(Texto[i]),1)+ ´ ´; end; Result := PalavraHex; end;
Aguardo uma ajuda!
Cyber
Curtir tópico
+ 0
Responder
Posts
27/08/2005
Marco Salles
A pergunta que não quer calar ???
Qual a função inversa de InttoHex :?: :?: :?: Eu não me preocupei com isto , mas certamente alguem deve saber..
Mas Enquanto a resposta não vem Tem que fazer esta Inversa no braço
[b:925d66ac11]Primeiro para verificar a função abaixo altere o conteuto de sua chamada[/b:925d66ac11]
:arrow:
[b:925d66ac11]//Chamada Inicial ao Meotodo MyStrToHex[/b:925d66ac11]
[color=blue:925d66ac11]//************************************************[/color:925d66ac11]
[b:925d66ac11]Posso garantir duas coisas a voce Cyber[/b:925d66ac11]
:P :P :P :P :P
[b:925d66ac11]No fim espero que voce tenha entendido os passos que tentei passar aqui[/b:925d66ac11].
Qual a função inversa de InttoHex :?: :?: :?: Eu não me preocupei com isto , mas certamente alguem deve saber..
Mas Enquanto a resposta não vem Tem que fazer esta Inversa no braço
Exemplo:
A pessoa digita no edit1 a palavra ´Delphi´ e eu retorno ´44656C706869´ no edit2.
Como eu faço isso ao contrario?
[b:925d66ac11]Primeiro para verificar a função abaixo altere o conteuto de sua chamada[/b:925d66ac11]
:arrow:
[b:925d66ac11]//Chamada Inicial ao Meotodo MyStrToHex[/b:925d66ac11]
procedure TForm1.Button1Click(Sender: TObject); begin edit2.text:=Form1.MyStrToHex(Edit1.text); Edit1.Text:=´´; Button1.Enabled:=false; Button2.Enabled:=true; end;
[color=blue:925d66ac11]//************************************************[/color:925d66ac11]
function Correspondencia(caracter:Char):String; begin if caracter=´A´ then result:=´10´ else if caracter=´B´ then result:=´11´ else if caracter=´C´ then result:=´12´ else if caracter=´D´ then result:=´13´ else if caracter=´E´ then result:=´14´ else if caracter=´F´ then result:=´15´; end;
function TransformarHexadecialDecimal(NumHex:string):string; begin if (NumHex[1] in [´A´..´F´]) then result:=inttostr(16*strtoint(Correspondencia(NumHex[1]))) else result:=inttostr(16*strtoint((NumHex[1]))); if (NumHex[2] in [´A´..´F´]) then result:=inttostr(strtoint(result) + (strtoint(Correspondencia(NumHex[2])))) else result:=inttostr(strtoint(result) + (strtoint(NumHex[2]))) end;
Function TForm1.Inversa(Texto:String):STRING; var Tamanho,i : integer; PalavraHex : string; begin result:=´´; Tamanho := Length(Texto); i:=1; While i <= Tamanho do begin palavraHex:=(Copy(texto,i,2)); result:=result+char(Ord(strtoint(TransformarHexadecialDecimal(palavraHex)))); i:=i+3; end; end;
procedure TForm1.Button2Click(Sender: TObject); begin Edit1.text:=Inversa(Edit2.text); Edit2.Text:=´´; Button1.Enabled:=True; Button2.Enabled:=False; end;
[b:925d66ac11]Posso garantir duas coisas a voce Cyber[/b:925d66ac11]
1) Este processo funciona bem , desde que voce não mexa na formatação que aparece no edit 1 e neM chame a função inversa de algo que não EXISTE....
Falo isto porque a formatação original separa com um espaço os numeros
´44656C706869´ ficando assim : ´44 65 6C 70 68 69´... Obedeci esta formatação para Retornar a palavra Delphi...
:P :P :P :P :P
2)A Outra coisa que garanto a voce é que apos eu ter desenvolvido este algebrismo todo , com certeza ira aparecer alguem que vai fornecer a inversa de InttoHex Ou alguem ira apresentar uma maneira bem mais fácil de calcular esta Inversa...
[b:925d66ac11]No fim espero que voce tenha entendido os passos que tentei passar aqui[/b:925d66ac11].
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)