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