当前位置:编程学习 > VB >>

关于“分析家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 ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,