关于“分析家3.1x版数据存储格式”
在网上找到了无数个同样的帖子(详细内容见下方),日期我理解了,可是价格到底是怎样转换来的?请高手指点一下:比如例子中的开盘价:B9 1E 25 41 是如何转换为十进制的真实价格的?
-------------------------------------------------------------------------
以下为网上找到的信息
分析家3.1x版数据存储格式
上海日线存储文件为:\superstk\data\sh\day.dat
深圳日线存储文件为:\superstk\data\sz\day.dat
以上海日线存储文件day.dat为例:
00000h: F4 9B 13 FC 10 02 00 00-00 00 00 00 D1 04 00 00
00000h: 81 0C 00 00 48 0C 00 00-31 41 30 30 30 31 00 FF
00020h: FF FF B0 09 00 00 16 00-17 00 18 00 19 00 1A 00
00030h: 1B 00 1C 00 1D 00 1E 00-07 0A FF FF FF FF FF FF
00040h: FF FF FF FF FF FF FF FF-FF FF FF FF FF FF FF FF
00050h: FF FF FF FF FF FF FF FF
......
......
41000h: 80 47 B2 2B B9 1E 25 41-CD CC 4C 41 EC 51 18 41
41010h: 9A 99 41 41 80 06 B2 47-40 1C BC 4C 00 00 00 00
41020h: 00 3C B6 2B 34 33 3F 41-AF 47 49 41 01 00 30 41
41030h: 34 33 3B 41 00 07 12 47-A4 3C 26 4C 00 00 00 00
该文件格式与磁盘文件物理存储方式类似:
起止地址 数据内容 数据含义 数据类型
00 - 03 F4 9B 13 FC 日线文件标志 Integer
04 - 07 10 02 00 00 保留 Integer
08 - 0B 00 00 00 00 保留 Integer
0C - 0F D1 04 00 00 证券总数 Integer
10 - 13 81 0C 00 00 需添加之起始块号 Integer
14 - 17 48 0C 00 00 当前最后空块号 Integer
18 - 21 31 41 30 30 30...FF 证券代码 Char[10]
22 - 25 B0 09 00 00 日线记录数 Integer
26 - 57 16 00 17 00...FF FF 记录块号 Word[25]
......
41000 - 41003 80 47 B2 2B 日期 Integer
41004 - 41007 B9 1E 25 41 开盘价 Single
41008 - 4100B CD CC 4C 41 最高价 Single
4100C - 4100F EC 51 18 41 最低价 Single
41010 - 41013 9A 99 41 41 收盘价 Single
41014 - 41017 80 06 B2 47 成交量 Single
41018 - 4101B 40 1C BC 4C 成交金额 Single
4101C - 4101D 00 00 上涨家数 Word
4101E - 4101F 00 00 下跌家数 Word
注:
1)起止地址、数据内容为十六进制,数据类型为 Delphi 下之定义。
2)从18h开始至40017h每64byte为一条股票数据分配记录,含义如上表18h - 57h所示;
3)从41000h开始每8KB为一股票数据存储块,每个股票数据存储块共存储256条日线记录,每一条记录的长度为32 byte(含义如上表;上涨家数及下跌家数只对指数有效);
4)从41000h开始的8KB为第0号数据存储块,以后类推;
5)系统对每个股票日线数据存储以存储块为单位进行分配。
6)具体应用实例分析家数据管理程序。
--------------------编程问答-------------------- 在网上找到一个方法贴,看后更糊涂了,哪位高手解释一下?
http://www.xici.net/main.asp?at=1&url=/u4223206/d67135321.htm
--------------------编程问答--------------------
Option Explicit
Public Type StockRecord
日期 As Long
开盘价 As Single
最高价 As Single
最低价 As Single
收盘价 As Single
成交量 As Single
成交金额 As Single
上涨家数 As Integer
下跌家数 As Integer
End Type
Public Sub Main()
Dim hFile As Integer
Dim t As StockRecord
Dim i As Long
hFile = FreeFile()
Open "C:\superstk\data\sh\day.dat" For Binary Access Read Lock Write As #hFile
Seek #hFile, &H41000
For i = 1 To 256
Get #hFile, , t
Debug.Print t.日期, t.开盘价, t.收盘价
Next
Close #hFile
End Sub
补充:VB , 基础类