alineri wrote:
> Bom Dia pessoal,
> 
> Preciso inverter um bloco Hexadecimal ( no caso inverter um bloco de 
> caracteres ) como no exemplo abaixo:
> 
> BLOCO INICIAL    4A7C7DB5
> BLOCO INVERTIDO  B57D7C4A
> 
> So que preciso inverter a posicao dos blocos e nao colocar de tras 
> para frente, so que preciso fazer isso independete do numero de 
> blocos serem pares ou impares exemplo:
> 
> BLOCO INICIAL   C4D5A9B
> BLOCO INVERTIDO 9B5A4DC

Você quis dizer 9B5A4D0C, correto?

> E assim por diante independete do numero de caracteres.

function Revert(const AHex: string): string;
var
   VHex: string;
   VLen, I: Integer;
begin
   if Odd(Length(AHex)) then
     VHex := '0' + AHex
   else
     VHex := AHex;
   VLen := Length(VHex);
   SetLength(Result, VLen);
   for I := 0 to Pred(VLen div 2) do
     Move(VHex[2 * I + 1], Result[VLen - 2 * I - 1], 2);
end;

Testa aí e diz se funciona.

Curiosidade: em que circunstância você precisa disto? Dump de memória? 
Faculdade?

--
Joao Morais

Responder a