读通达信数据
根据提供的信息,我们可以总结出以下知识点: ### 一、通达信数据的加密与读取 #### 1.1 权息资料存储位置 - **权息资料**:指的是股票等金融工具的分红、配股等权益信息。 - **存储位置**:权息资料主要存储在名为 `GBBQ` 和 `QBBQ.MAP` 的两个文件中。 #### 1.2 文件加密情况 - 这两个文件是加密的,通常情况下,直接访问这些文件需要专门的解密手段。 - **无需解密读取方法**:通过特定技术手段可以实现不需解密即可读取文件中的信息,这为获取权息资料提供了一种便捷途径。 ### 二、VFP环境下读取通达信数据的方法 #### 2.1 准备工作 - 使用VFP环境进行开发。 - 需要准备两张图片文件:`KK.JPG`(用于获取K线图数据)和`QX.JPG`(用于获取权息数据页面)。 #### 2.2 数据读取流程 - **步骤1:获取界面数据** - **操作**:使用VFP的API调用`SetCursorPos`设置鼠标位置,`mouse_event`模拟鼠标点击事件。 - **示例**: ```vfp SetCursorPos(50,500) // 设置鼠标到屏幕坐标 (50,500) mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0) // 模拟左键按下 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0) // 模拟左键弹起 ``` - **目的**:通过模拟点击打开相应的数据页面或窗口。 - **步骤2:输入股票代码** - **操作**:使用`keybd_event`函数模拟键盘输入股票代码。 - **示例**: ```vfp keybd_event(48,0,0,0) // 输入数字"0" keybd_event(48,0,0x2,0) // 模拟释放数字"0"键 Sleep(1) // 延时1秒 ``` - **目的**:输入指定股票代码以便获取该股票的权息信息。 - **步骤3:全选与复制数据** - **操作**:使用`keybd_event`函数模拟`Ctrl+A`和`Ctrl+C`组合键,以全选并复制权息数据。 - **示例**: ```vfp keybd_event(0x11,0,0,0) // 按下Ctrl键 keybd_event(65,0,0,0) // 按下A键 keybd_event(0x11,0,0x2,0) // 释放Ctrl键 keybd_event(65,0,0x2,0) // 释放A键 Sleep(1) // 延时1秒 ``` ```vfp keybd_event(0x11,0,0,0) // 按下Ctrl键 keybd_event(67,0,0,0) // 按下C键 keybd_event(0x11,0,0x2,0) // 释放Ctrl键 keybd_event(67,0,0x2,0) // 释放C键 Sleep(1) // 延时1秒 ``` - **目的**:将当前显示的权息数据全选并复制到剪贴板上。 - **步骤4:处理复制的数据** - **操作**:从剪贴板中获取数据,并保存至数据库表。 - **示例**: ```vfp CLEAR CREATE CURSOR tt(ttm) APPEND BLANK REPLACE tt.tt WITH _cliptext ``` ### 三、小结 通过上述方法,即使面对加密的权息数据文件,也能够利用VFP环境下的API模拟用户操作来间接获取所需的权息信息。这种方法不仅避免了解密过程中的复杂性,而且大大提高了数据读取的效率。需要注意的是,在实际应用中还需确保操作符合法律法规的要求。