home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / disk / fdformat / baseconv.pas next >
Encoding:
Pascal/Delphi Source File  |  1991-06-26  |  913 b   |  47 lines

  1. {$A+,B-,D+,E-,F-,I+,L+,N-,O-,R-,S-,V-}
  2. {$M 16384,0,655360}
  3.  
  4. UNIT BaseConv;
  5.  
  6. INTERFACE
  7.  
  8. FUNCTION HexF(x: LONGINT; a: BYTE): STRING;
  9. FUNCTION DezH(x: STRING): LONGINT;
  10.  
  11. CONST 
  12.   Hex: STRING[16]= '0123456789ABCDEF';
  13. VAR 
  14.   BaseError: INTEGER;
  15.  
  16. IMPLEMENTATION
  17.  
  18. FUNCTION HexF(x: LONGINT; a: BYTE): STRING;
  19. BEGIN
  20.   HexF := Hex[Succ(x DIV 16)] + Hex[Succ(x MOD 16)];
  21.   BaseError := 0;
  22.   IF x > 255 THEN BaseError := 1;
  23.   IF x < 0 THEN BaseError := 2;
  24. END;
  25.  
  26. FUNCTION DezH(x: STRING): LONGINT;
  27. VAR 
  28.   h, i: LONGINT;
  29. BEGIN
  30.   h := 0;
  31.   BaseError := 0;
  32.   IF Length(x) > 2 THEN BaseError := 3;
  33.   IF Length(x) > 1 THEN BEGIN
  34.     h := Pos(UpCase(x[1]), Hex);
  35.     IF h = 0 THEN BaseError := 4;
  36.     h := Pred(h) * 16;
  37.   END;
  38.   IF Length(x) <> 0 THEN BEGIN
  39.     i := Pos(UpCase(x[Length(x)]), Hex);
  40.     IF i = 0 THEN BaseError := 4;
  41.     h := Pred(h) + i;
  42.   END;
  43.   DezH := h;
  44. END;
  45.  
  46. END.
  47.