Analitcs

Pesquisar no conteúdo do blog.atlabs.com.br

sexta-feira, 4 de abril de 2014

DELPHI - Função BinToHex / BinToHex Function

Reações: 


  Function BinToHex(BinStr : String) : String;
    Const
      BinArray: array[0..15, 0..1] of string =
             (('0000', '0'), ('0001', '1'), ('0010', '2'), ('0011', '3'),
              ('0100', '4'), ('0101', '5'), ('0110', '6'), ('0111', '7'),
              ('1000', '8'), ('1001', '9'), ('1010', 'A'), ('1011', 'B'),
              ('1100', 'C'), ('1101', 'D'), ('1110', 'E'), ('1111', 'F'));
    var
      Error: Boolean;
      j: Integer;
      BinPart: string;
    begin
      Result:='';
      Error:=False;
      for j:=1 to Length(BinStr) do
        if not (BinStr[j] in ['0', '1']) then
        begin
          Error:=True;
          Continue;
        end;
      if not Error then
      begin
        case Length(BinStr) mod 4 of
          1: BinStr:='000'+BinStr;
          2: BinStr:='00'+BinStr;
          3: BinStr:='0'+BinStr;
        end;
        while Length(BinStr)>0 do
        begin
          BinPart:=Copy(BinStr, Length(BinStr)-3, 4);
          Delete(BinStr, Length(BinStr)-3, 4);
          for j:=1 to 16 do
            if BinPart=BinArray[j-1, 0] then
              Result:=BinArray[j-1, 1]+ Result;
        end;
      end;
    end;

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.

Max Gehringer