首页 > 编程 > HTML > 正文

二进制文件转换为文本工具

2020-01-25 19:40:53
字体:
来源:转载
供稿:网友
保存为.hta运行
复制代码代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>package file v0.1</title> 
<meta http-equiv="Content-Type" content="text/html; charset=GB2312"> 
<HTA:APPLICATION  
    ID="package file v0.1"  
    APPLICATIONNAME="package file v0.1"  
    VERSION="0.1"  
    SCROLL="no"  
    INNERBORDER="no"  
    CONTEXTMENU="yes"  
    CAPTION="yes"  
    ICON="no"  
    SHOWINTASKBAR="yes"  
    SINGLEINSTANCE="yes"  
    SYSMENU="yes"  
    MAXIMIZEBUTTON ="no" 
    WINDOWSTATE="normal" 
    NAVIGABLE="yes" 
    /> 

<SCRIPT LANGUAGE="VBScript"> 

function transfert() 

    dim filename 

    filename = document.getElementById("srcFile").value 

    if len(filename)>0 then 

        dim oReq     

        'on error resume next 
        '//创建XMLHTTP对象 
        set oReq    = CreateObject("MSXML2.XMLHTTP") 

            oReq.open "get","file://" & filename,false 
            oReq.send  

        ff = oReq.responseBody 

        dim u,s,kk 

        u = lenb(ff) 

        redim kk(u-1) 

        for i=0 to u-1 
            s = hex(ascb(midb(ff,i+1,1))) 
            if len(s)<2 then 
                s = "0" & s 
            end if 
            'kk = kk & s 
            kk(i) = s 
        next 

        make filename,join(kk,"") 

    else 
        document.getElementById("srcFile").focus 
        msgbox "请选择要压缩的文件",16,"提示" 

    end if 

end function 

function make(filename,data) 

    dim htm,file 

    file = mid(filename,instrrev(filename,"/")+1) 

    htm = htm & "<html>"                    & vbcrlf 
    htm = htm & "<head>"                    & vbcrlf 
    htm = htm & "<title>selfdec</title>"    & vbcrlf 
    htm = htm & "<meta http-equiv=""Content-Type"" content=""text/html; charset=GB2312"">" & vbcrlf 
    htm = htm & "<HTA:APPLICATION "            & vbcrlf 
    htm = htm & "    ID=""selfdec"" "        & vbcrlf 
    htm = htm & "    APPLICATIONNAME=""self"" " & vbcrlf 
    htm = htm & "    VERSION=""0.1"" "        & vbcrlf 
    htm = htm & "    SCROLL=""no"" "            & vbcrlf 
    htm = htm & "    INNERBORDER=""no"" "    & vbcrlf 
    htm = htm & "    CONTEXTMENU=""no"" "    & vbcrlf 
    htm = htm & "    CAPTION=""no"" "        & vbcrlf 
    htm = htm & "    ICON=""no"" "            & vbcrlf 
    htm = htm & "    SHOWINTASKBAR=""no"" "    & vbcrlf 
    htm = htm & "    SINGLEINSTANCE=""yes"" "& vbcrlf 
    htm = htm & "    SYSMENU=""no"" "        & vbcrlf 
    htm = htm & "    MAXIMIZEBUTTON =""no""" & vbcrlf 
    htm = htm & "    WINDOWSTATE=""normal""" & vbcrlf 
    htm = htm & "    NAVIGABLE=""yes"""        & vbcrlf 
    htm = htm & "    />"                        & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "<SCRIPT LANGUAGE=""VBScript"">"        & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "'//保存文件"                & vbcrlf 
    htm = htm & "function saveFile(filename,str)"        & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    set adodbStream = CreateObject(""ADODB"" & ""."" & ""Stream"")" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    adodbStream.Type= 1"    & vbcrlf 
    htm = htm & "    adodbStream.Open"        & vbcrlf 
    htm = htm & "    adodbStream.write str"    & vbcrlf 
    htm = htm & "    adodbStream.SaveToFile filename,2" & vbcrlf 
    htm = htm & "    adodbStream.Close"        & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "end function"                & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "'//VB数组转变成二进制格式" & vbcrlf 
    htm = htm & "Function MultiByteToBinary(MultiByte)" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    Dim RS, LMultiByte, Binary"            & vbcrlf 
    htm = htm & "    Const adLongVarBinary = 205"        & vbcrlf 
    htm = htm & "    Set RS = CreateObject(""ADODB.Recordset"")" & vbcrlf 
    htm = htm & "    LMultiByte = LenB(MultiByte)"        & vbcrlf 
    htm = htm & "    If LMultiByte>0 Then"    & vbcrlf 
    htm = htm & "        RS.Fields.Append ""mBinary"", adLongVarBinary, LMultiByte"    & vbcrlf 
    htm = htm & "        RS.Open"            & vbcrlf 
    htm = htm & "        RS.AddNew"            & vbcrlf 
    htm = htm & "        RS(""mBinary"").AppendChunk MultiByte & ChrB(0)"            & vbcrlf 
    htm = htm & "        RS.Update"            & vbcrlf 
    htm = htm & "        Binary = RS(""mBinary"").GetChunk(LMultiByte)"                & vbcrlf 
    htm = htm & "    End If"                    & vbcrlf 
    htm = htm & "    MultiByteToBinary = Binary"            & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "End Function"                & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "function DeleteMe()"        & vbcrlf 
    htm = htm & "    "                        & vbcrlf 
    htm = htm & "    dim filename"            & vbcrlf 
    htm = htm & "    filename    = document.location.href" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    filename    = mid(filename,instrrev(filename,""/"")+1)" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    Dim fso, MyFile"        & vbcrlf 
    htm = htm & "    Set fso        = CreateObject(""Script" & "ing.FileS" & "ystemObject"")    " & vbcrlf 
    htm = htm & "    Set MyFile    = fso.GetFile(filename)" & vbcrlf 
    htm = htm & "        MyFile.Delete"        & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "end function"                & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "function exec()"            & vbcrlf 
    htm = htm & "    "                        & vbcrlf 
    htm = htm & "    '//屏蔽错误"            & vbcrlf 
    htm = htm & "    'on error resume next"    & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    '//改变窗体大小"        & vbcrlf 
    htm = htm & "    window.resizeTo 0,0"    & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    dim data,t,kk,filename" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    '//得到数据"            & vbcrlf 
    htm = htm & "    data        = document.getElementById(""divData"").innerText" & vbcrlf 
    htm = htm & "    '//得到文件名"            & vbcrlf 
    htm = htm & "    filename    = document.getElementById(""divFileName"").innerText" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    '//得到数据长度"        & vbcrlf 
    htm = htm & "     u = len(data)"            & vbcrlf 
    htm = htm & "    "                        & vbcrlf 
    htm = htm & "    '//获得文件数组"        & vbcrlf 
    htm = htm & "    for i=1 to u step 2"    & vbcrlf 
    htm = htm & "        t = mid(data,i,2)"    & vbcrlf 
    htm = htm & "        kk = kk & ChrB(clng(""&H"" & t))" & vbcrlf 
    htm = htm & "    next"                    & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    '//转变成二进制格式"    & vbcrlf 
    htm = htm & "    dataArry = MultiByteToBinary(kk)"    & vbcrlf 
    htm = htm & "    "                        & vbcrlf 
    htm = htm & "    '//保存文件    "            & vbcrlf 
    htm = htm & "    saveFile filename,dataArry"            & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    '//删除自己"            & vbcrlf 
    htm = htm & "    DeleteMe"                & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "    '//关闭自己"            & vbcrlf 
    htm = htm & "    window.opener = nothing"& vbcrlf 
    htm = htm & "    window.close"            & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "end function"                & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "<" & "/SCRIPT>"            & vbcrlf 
    htm = htm & "<" & "/head>"                & vbcrlf 
    htm = htm & "<body marginleft=0 marginright=0 onload=""exec()"">" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "<div id=""divFileName""    style=""display:none;"">" & file & "</div>" & vbcrlf 
    htm = htm & "<div id=""divData""        style=""display:none;"">" & data & "</div>" & vbcrlf 
    htm = htm & ""                            & vbcrlf 
    htm = htm & "</body>"                    & vbcrlf 
    htm = htm & "</html>"                    & vbcrlf 

    dim fso,f 

    dim this_file 
        this_file = file & "-pf.hta" 

    Set fso = CreateObject("Scripting.FileSystemObject") 
    Set f = fso.OpenTextFile(this_file, 2, True) 
        f.Write htm 

    msgbox "生成文件" & this_file & "成功!",64,"生成" 


end function 


</SCRIPT> 
</head> 

<body marginleft=0 marginright=0 onload="window.resizeTo 389,145 "> 

请选择文件:<input type=file id="srcFile" style="width:260px;"><br><br> 
            <input type=button value="  转换  " onclick="transfert">  <input type=button value="  关闭  " onclick="window.close"> 

</body> 
</html>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表