Hexadecimal para Inteiro
Ola Colegas,
Alguem tem alguma função que transforma
um valor Hexadecimal em Inteiro,
Pois Preciso disso para Descodgificar um Codigo de Barras
que contém as 3 chaves primarias para pesquisa do Registro.
É Muito Urgente . :(
Obrigado.
Alguem tem alguma função que transforma
um valor Hexadecimal em Inteiro,
Pois Preciso disso para Descodgificar um Codigo de Barras
que contém as 3 chaves primarias para pesquisa do Registro.
É Muito Urgente . :(
Obrigado.
Wagnerps
Curtidas 0
Respostas
Aroldo Zanela
11/04/2003
Exemplo:
ShowMessage(IntToStr(StrToInt(´$´+´FF´)))
GOSTEI 0
Wagnerps
11/04/2003
Aroldo
Obrigado pela Dica mas não Funcionou
segue abaixo a funcão usada para gerar o codigo de barras
function TForm1.IntToHexaN(pBase: Integer; pNum: Int64): string;
var
X: integer;
Ch: char;
Lista: TStringList;
Ret: string;
Atual_i, Anterior_i: int64;
Terminou: boolean;
begin
Ret := ´´;
Ch := ´0´;
Terminou := False;
Lista := TStringList.Create;
try
for X := 1 to pBase do
begin
Lista.Add(Ch);
Ch := Succ(Ch);
if X = 10 then
Ch := ´A´;
end;
if pNum < pBase then
Ret := Lista.Strings[pNum]
else
begin
Atual_i := pNum;
while not Terminou do
begin
if Atual_i >= pBase then
begin
Anterior_i := Atual_i;
Atual_i := Atual_i div pBase;
Ret := Lista.Strings[Anterior_i - (Atual_i * pBase)] + Ret;
end
else
Terminou := True;
end;
Ret := Lista.Strings[Atual_i] + Ret;
end;
Result := Ret;
finally
Lista.Free;
end;
end;
Essa funcao foi desenvolvida por um outro programador
antes que eu entrasse na empresa.
pBase = 36;
Num = 114500840000000001
145 = Codigo da empresa
0084 = Caixa onde esta o documento(Registro)
00000 = Cx Box dentro da Caixa 0084
00001 = Nº do item dentro da Caixa 0084
os Valores 00840000000001 são as minhas Chaves primarias
que vou utilizar para localizar o Registro.
Obrigado.
Obrigado pela Dica mas não Funcionou
segue abaixo a funcão usada para gerar o codigo de barras
function TForm1.IntToHexaN(pBase: Integer; pNum: Int64): string;
var
X: integer;
Ch: char;
Lista: TStringList;
Ret: string;
Atual_i, Anterior_i: int64;
Terminou: boolean;
begin
Ret := ´´;
Ch := ´0´;
Terminou := False;
Lista := TStringList.Create;
try
for X := 1 to pBase do
begin
Lista.Add(Ch);
Ch := Succ(Ch);
if X = 10 then
Ch := ´A´;
end;
if pNum < pBase then
Ret := Lista.Strings[pNum]
else
begin
Atual_i := pNum;
while not Terminou do
begin
if Atual_i >= pBase then
begin
Anterior_i := Atual_i;
Atual_i := Atual_i div pBase;
Ret := Lista.Strings[Anterior_i - (Atual_i * pBase)] + Ret;
end
else
Terminou := True;
end;
Ret := Lista.Strings[Atual_i] + Ret;
end;
Result := Ret;
finally
Lista.Free;
end;
end;
Essa funcao foi desenvolvida por um outro programador
antes que eu entrasse na empresa.
pBase = 36;
Num = 114500840000000001
145 = Codigo da empresa
0084 = Caixa onde esta o documento(Registro)
00000 = Cx Box dentro da Caixa 0084
00001 = Nº do item dentro da Caixa 0084
os Valores 00840000000001 são as minhas Chaves primarias
que vou utilizar para localizar o Registro.
Obrigado.
GOSTEI 0