home *** CD-ROM | disk | FTP | other *** search
- FUNCTION Hex2Dec (S : string) : longint;
- { returns hexadecimal string as decimal value }
- VAR
- Len : byte absolute S;
- Loop : byte;
- Li : longint;
- Num : longint;
-
- BEGIN
- if S [1] = '$' then delete (S, 1, 1);
- if upcase (S [Len]) = 'H' then dec (S [0]);
- Num := 0;
- for Loop := 1 to Len do begin
- Li := 0;
- while
- (HexString [Li] <> S [Loop]) { compare letter }
- and
- (Li < 16)
- do
- inc (Li); { inc counter }
- if Li = 16 then begin
- Num := -1; { -1 if invalid }
- exit;
- end;
- Num := Num + Li shl ((Len - Loop) * 4); { add to Num }
- end;
- Hex2Dec := Num; { return value }
- END;
-