1

Тема: HTA: вычисление CRC32 строки или файла

<html>
<head>
<meta http-equiv=content-type content="text-html; charset=windows-1251">
<meta http-equiv=MSThemeCompatible content=yes>
<hta:application
    id=HTAApp
    applicationName=CRC32_Calculator
    icon=keymgr.dll
    maximizeButton=no
    innerBorder=no
    scroll=no
    selection=no
    contextMenu=no
    singleinstance=yes
    version=1.0
    author=mozers™
    email=mozers@mail.ru
    icq=256106175
>
<style type="text/css">
    body, table {background-color:threedface; overflow:hidden; margin:2px;}
    body, input, table, legend {font-family:MS Sans Serif; font-size:6pt;}
    legend, label {color:highlight;}
    legend {font-weight:bold;}
</style>
<script language="VBScript">
    Function vbASCII(s)
        vbASCII = Asc(s)
    End Function
    Function vbHex(i)
        vbHex = Hex(i)
    End Function
</script>
<script language="JavaScript" type="text/javascript">
    window.resizeTo(400, 128);
    document.title = HTAApp.applicationName.replace(/_/g,' ') + ' v.' + HTAApp.version;

    var crcTable = [];
    function crcTableCalc() {
        for(var i=0; i<256; i++){
            var c = i;
            for(var j=0; j<8; j++) c=(c&1) ? 0xEDB88320^(c>>>1) : c>>>1;
            crcTable[i] = c;
        }
    }

    function crc32 (str) {
        var c = 0xFFFFFFFF;
        for(var i=0; i<str.length; i++) c=crcTable[(c^vbASCII(str.charAt(i)))&0xFF]^(c>>>8);
        return c^0xFFFFFFFF;
    }

    function ReadBinaryFile(filename) {
        var Stream = new ActiveXObject("ADODB.Stream");
        with (Stream) {
            type=2;
            charset='ISO-8859-1';
            open();
            loadFromFile(filename);
            var content=readText();
            close();
        }
        return content;
    }

    function GetCRCfile(){
        var fname = iFile.value;
        var bin_str=ReadBinaryFile(fname);
        var result = crc32(bin_str);
        iDec.value = result;
        iHex.value = vbHex(result);
    }

    function GetCRCtext(){
        var str=iText.value;
        var result = crc32(str);
        iDec.value = result;
        iHex.value = vbHex(result);
    }

    crcTableCalc();
</script>
</head>
<body>
<table style="width:100%;" cellpadding="0" cellspacing="2">
    <tr><td>Text:
        <td style="width:100%;"><input id="iText" style="width:100%;" type="text">
        <td><input type=button onClick="GetCRCtext()" value="Calculate" hidefocus>
    <tr><td>File:
        <td style="width:100%;"><input id="iFile" style="width:100%;" type="file">
        <td><input type=button onClick="GetCRCfile()" value="Calculate" hidefocus>
    <tr>
        <td colspan="3">
        <fieldset><legend>&nbsp;CRC32&nbsp;</legend>
            DEC:&nbsp;<input id="iDec" style="width:150px;" type="text">
            &nbsp;&nbsp;&nbsp;
            HEX:&nbsp;<input id="iHex" style="width:150px;" type="text">
        </fieldset>
</table>
</body>
</html>

Автор идеи — mozers.

Основано на: Koders Code Search: crc32.js - JavaScript

2 (изменено: mozers, 2016-01-06 12:51:09)

Re: HTA: вычисление CRC32 строки или файла

Последняя версия находится тут