JS如何读取二进制文件?

来源:互联网 发布:手机系统加速软件 编辑:程序博客网 时间:2024/05/21 22:21

本人想读取大智慧的数据文件,比如,60000 股票,其开始的四个字节为 EC 1A 32 01
我想一个一个字节读取,然后拼接 成:01321AEC 再转换成十进制:就表示这日线的日期:20060908
我的问题就是:如何读取这4个字节,最后转换成20060908?
ar f="600000.day"


var ados=new ActiveXObject("ADODB.Stream");
   ados.Charset = "utf-8"
   ados.Type = 1  // 设置为二进制
   ados.mode = 3  // 设置可读写
   ados.Open()
   ados.LoadFromFile(f)
   ados.Position=0
   var s=ados.Read(1) //读取第一个字节
//接下来怎么办?
用VBS解决了.关键在vbs有个ASCB函数,可以把读取的字节转换成10进制数
看来js有些地方不行,还不能完全抛弃VBS,呵呵.




Dim f
 f="600000.day"


Set ados=CreateObject("ADODB.Stream")
   ados.Type = 1  '设置为二进制
   ados.mode = 3  ' 设置可读写
   ados.Open()
   ados.LoadFromFile(f)
   ados.Position=0
   Dim bufdate(4)
   For i=3 To 0 Step -1
    bufdate(i)=getns(ascb(ados.Read(1)),16)  '读到的字节用ascb转换成了10进制数


   Next
   Dim s
   s=""
   For i=0 To 3
   s=s&bufdate(i)  '拼接
   Next
   s="&H"+s  '变成16进制的字符串
   WScript.Echo(CLNG(s))  'CLNG转换16进制字符串成10进制数
   ados.Close()
 
 
 function getns(ByVal n, byval sysn)  '10进制转换函数可以转换到16,8,或者二进制
 change = ""
 Dim t
 While (n)
  t = n mod sysn
  change =mid("0123456789ABCDEF",t+1,1)  & change
  n= fix(n/sysn)
 Wend
   If len(change)=1 Then change="0"&change
 getns=change
end Function