AppleScript: hex 2 num konvertieren

on hexToNum from h given sign:sign
    script o
        property hexChrs : "0123456789abcdef" as Unicode text -- TIDs obey AppleScript's case attribute with Unicode.

        on getHexVal(c)
            set AppleScript's text item delimiters to c
            set v to (count text item 1 of hexChrs)
            if (v is 16) then error "Non-hex character(s)."

            return v
        end getHexVal
    end script

    set astid to AppleScript's text item delimiters
    try
        set h to h as Unicode text -- Speeds up use of TIDs with Unicode 'hexChrs' in o.
        tell o to set n to getHexVal(character 1 of h)
        if (sign) and (n > 7) then set n to n - 16

        repeat with i from 2 to (count h)
            tell o to set n to n * 16 + getHexVal(character i of h)
        end repeat
    on error msg number errNum
        set AppleScript's text item delimiters to astid
        error "hexToNum handler: " & msg number errNum
    end try
    set AppleScript's text item delimiters to astid

    return n
end hexToNum