C++读取通达信shm.tnf文件股票代码/名称

2024-03-01 20:48

本文主要是介绍C++读取通达信shm.tnf文件股票代码/名称,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    之前用MFC写股票相关小工具,但shm.tnf(沪市)szm.tnf(深市)文件格式一直搞不清楚没法读到相关代码及名称,只能手动导出更新,麻烦得狠。周末无聊,重新在网上搜索相关信息,具体数据格式还是没搞明白,但已经可以读出想要的信息,贴出网上找的数据格式信息如下,供参考:

shm.tnf文件格式

TFileHelisting_Tnf = pair conditionerked record

IP: rear endortment[0…39] of char; //–IP地址

Unknown: word; //–未知

ddined: Integer; //–日期

time: Integer; //–时间

end;

PFileHelisting_Stock = ^TFileHelisting_Tnf;

TDfound ataRecord_Tnf = pair conditionerked record

StockCode: rear endortment[0…8] of char; //–股票代码

Unknown1: byte; //–未知

Unknown2: word; //–未知

Unknown3: single; //–代码未知

Unknown4: Integer; //–未知

Unknown5: Integer; //–未知

StockNwseeing ase: rear endortment[0…17] of char; //–股票名称

Unknown6: Integer; //–未知

Unknown7: rear endortment[0…185] of char; //–未知

Lseeing astClose: single; //昨收盘价

Unknown8: byte; //–未知

Unknown9: Integer; //–未知

StockNwseeing aseSX: rear endortment[0…8] of char; //–名称缩写

    有需要的友友可以直接参考以下代码读出相关信息,上面的数据格式多次尝试定义结构类型,始终不能准确读出结果,最后只好放弃定义结构。网上有很多信息提到现在的shm.tnf,前面50字节为文件相关信息,先偏移50,然后一条信息点314字节,每次读314字节,经多次尝试:代码为314中前9字节,名称为23开始的18个字节,缩写为285开始的9字节,或有不对,输出如下可以。

shm.tnf

    此调试用VS2017 C++编写,建立一个空项目,直接把内容贴到.cpp文件中即可。注:请自行修正文件路径,本机为string path = "D:\\new_tdx\\T0002\\hq_cache\\shm.tnf",对应修改此处。
#define _CRT_SECURE_NO_WARNINGS#include <iostream>#include <fstream>#include <string>using namespace std;void test(){string path = "D:\\new_tdx\\T0002\\hq_cache\\shm.tnf";fstream ifs(path, ios::in | ios::binary);ifs.seekg(50);char buf[314];int nSh = 0;int nKcB = 0;cout << path << endl;cout << "------------------------------------------------------" << endl;//输出表头cout << "序 号" << "\t股票代码" << "\t股票名称" << "\t名称缩写" << endl;cout << "------------------------------------------------------" << endl;while (!ifs.eof()){ifs.read(buf, sizeof(buf));string strTwo(buf, 2);string symbol(buf, 0, 6);string name(buf + 23, 18);string mcsx(buf + 285, 9);if (strTwo == "60" | strTwo == "68" ){if(strTwo == "60")nSh++;else nKcB++;cout << nSh + nKcB << "\t" << symbol << "\t\t" << name << "\t" << mcsx << endl;}//memset(buf, 0, sizeof(buf));}cout << "------------------------------------------------------" << endl;cout << "沪市A股不含科创板:" << nSh << "只" << endl;cout << "沪市A股科创板:" << nKcB << "只" << endl;cout << "沪市A股合计:" << nSh + nKcB << "只" << endl;ifs.close();}int main(){test();}
	指数、板块等相关信息在调试中已屏蔽,需要用的可自行修改。有过类似经验的友友留言交流指导,谢谢!

这篇关于C++读取通达信shm.tnf文件股票代码/名称的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/763757

相关文章

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

C++作用域和标识符查找规则详解

《C++作用域和标识符查找规则详解》在C++中,作用域(Scope)和标识符查找(IdentifierLookup)是理解代码行为的重要概念,本文将详细介绍这些规则,并通过实例来说明它们的工作原理,需... 目录作用域标识符查找规则1. 普通查找(Ordinary Lookup)2. 限定查找(Qualif

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以