如何读取二进制文件的内容,并转换?
读取股票K线的存盘数据文件,提取数据进行二次分析。现在知道数据文件每32个字节记录1天K线资料,其中1-4字节表示日期,5-8字节表示开盘价,....(字节排序要倒过来换算)
例如:数据文件的16进制内容为:
BF 03 33 01 D8 02 00 00 ......
日期为:01 33 03 BF,16进制 0x013303BF =20120511 (日期)
开盘为:00 00 02 D8,16进制 0x000002D8 =728 (开盘价格为7.28)
我处理的方法如下(已转换日期为例):
my=fopen("sh600004.day")
a1=fread(my,1) &&第一个字节,是十六进制BF对应的ASC字符
a2=fread(my,1) &&第二字节
a3=fread(my,1) &&第三字节
a4=fread(my,1) &&第四字节
mydate=asc(a4)*256*256*256+asc(a3)*256*256+asc(a2)*256+asc(a1) &&结果为20120511
**第四字节的asc数字 乘256 x 256 x 256 + 第三字节x256x256 + ......
虽然用以上方法可以得出正确结果,但是太笨了,肯定有捷径的,bintoc()、ctonbin()都不懂什么意思。
从没用过底层文件也不会用其他编程语言,就上面的代码都琢磨了几个小时,请斑竹指点指点。可怜俺没有分送啊。