从钱龙数据中读取股票代码信息导入到数据库
在我的例子里使用的是MS SqlServer 2005, 如果要使用其他数据库,可能某些地方要做一定的修改.
钱龙软件的股票代码按照市场不同保存在两个文件: stockinfo.sha和stockinfo.szn, 分别代表上海和深圳.
下面是我的程序的核心代码:
{
FileStream stream = new FileStream(strPath, FileMode.Open, FileAccess.Read);
BinaryReader b_reader = new BinaryReader(stream);
SqlCommand cmd = new SqlCommand("", m_conn);
cmd.Transaction = m_tran;
cmd.CommandText = "insert into stockinfos ([StockCode] ,[Market] ,[StockName], [IsIndex]) " +
"VALUES (@StockCode,@Market,@StockName, @IsIndex)";
cmd.Parameters.Add("@StockCode", SqlDbType.NChar, 6);
cmd.Parameters.Add("@Market", SqlDbType.NVarChar, 10);
cmd.Parameters.Add("@StockName", SqlDbType.NVarChar, 20);
cmd.Parameters.Add("@IsIndex", SqlDbType.Bit);
try
{
while (stream.CanRead)
{
int nIndex = b_reader.ReadInt32();
string strCode = GetString(b_reader, 7);
int nCnt = 0;
List<Byte> endbytes = new List<byte>();
endbytes.Add(0);
string strName = GetStringTillEnd(b_reader,endbytes, out nCnt);
strCode = strCode.Replace('\0', ' ');
strName = strName.Replace('\0', ' ');
strCode = strCode.Trim();
strName = strName.Trim();
int n = 0x119;
n -= 4 + 7;
n -= nCnt;
cmd.Parameters[0].Value = strCode;
cmd.Parameters[1].Value = p_strMarket;
cmd.Parameters[2].Value = strName;
int nIsIndex=0;
if ((p_strMarket == "SH" && ( strCode.StartsWith("000") || strCode.StartsWith("801"))
||
(p_strMarket == "SZ" && ( strCode.StartsWith("399")))
||
strName.Contains("指数")))
{
nIsIndex = 1;
}
cmd.Parameters[3].Value = nIsIndex;
cmd.ExecuteNonQuery();
Console.WriteLine("Index={0}, Code={1}, Name={2}, {3}", nIndex, strCode, strName,
nIsIndex==1 ? "指数" : "证券");
b_reader.ReadBytes(n);
}
}
catch (EndOfStreamException)
{
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw;
}
}
其中用到的两个读入字符串的方法为:
{
Encoding mbcs = Encoding.GetEncoding(936);
Encoding unicode = Encoding.Unicode;
byte[] byteBuffer = m_reader.ReadBytes(p_nLength);
byte[] unicodBytes = Encoding.Convert(mbcs, unicode, byteBuffer);
char[] buffer;// = new char[unicode.GetCharCount(unicodBytes)];
buffer = unicode.GetChars(unicodBytes);
// char[] buffer = m_reader.ReadChars(p_nLength);
string str = new string(buffer);
str = str.Replace('\x3', '\x20');
return str.Trim();
}
public static string GetStringTillEnd(BinaryReader m_reader, List < byte > p_endchars, out int p_nLength)
{
Encoding mbcs = Encoding.GetEncoding(936);
Encoding unicode = Encoding.Unicode;
p_nLength = 0;
byte[] byteBuffer_0 = new byte[1024];
byte b;
do
{
b = m_reader.ReadByte();
p_nLength++;
byteBuffer_0[p_nLength - 1] = b;
}
while (!p_endchars.Contains(b));
//byteBuffer = m_reader.ReadBytes(p_nLength);
byte[] byteBuffer= new byte[p_nLength];
for (int i = 0; i < p_nLength; i++) byteBuffer[i] = byteBuffer_0[i];
byte[] unicodBytes = Encoding.Convert(mbcs, unicode, byteBuffer);
char[] buffer;// = new char[unicode.GetCharCount(unicodBytes)];
buffer = unicode.GetChars(unicodBytes);
// char[] buffer = m_reader.ReadChars(p_nLength);
string str = new string(buffer);
str = str.Replace('\x3', '\x20');
return str.Trim();
}
因为程序很简单, 其他不重要的部分我就不放上来了.
转载于:https://www.cnblogs.com/sliencer/archive/2007/03/26/688605.html
从钱龙数据中读取股票代码信息导入到数据库相关推荐
- 从钱龙数据中读取股票权息信息导入到数据库
从钱龙数据中读取股票权息信息导入到数据库 前面写了如果读股票代码和日线数据,下面是如何读股票的权息信息. 钱龙中权息数据存储在QLDATA/history/shase/weight和QLDATA/hi ...
- Failed to introspect Class [com.controller.HardWareController] from ClassLoa在ssm中读取串口信息
标题:Failed to introspect Class [com.controller.HardWareController] from ClassLoa在ssm中读取串口信息 之前使用java程 ...
- 从数码照片中读取定位信息
摘要:数码照片在拍摄时会记录照片的拍摄信息,如果拍照时开启了GPS定位服务功能,则就会记录拍摄时的经纬度坐标及高程信息.本文介绍如何读取数码照片中的位置信息,以及根据位置信息转换成shapefile格 ...
- php读取excel并导入数据,PHPExcel读取excel并导入数据库
PHPExcel是一款php对于excel数据表读写的一个非常棒的插件了,下面我来给大家介绍利用PHPExcel读取excel并导入mysql数据库方法. 例1,代码示例,代码如下:require_o ...
- 从属性资源文件中读取连接数据库信息
从属性资源文件中读取连接数据库信息 jdbc.properties 属性配置文件 driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:330 ...
- 物联网:数据淘金——从数据中挖掘有效信息
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 如今是信息时代,得数据者得天下.然而,只是"有"数据还不够,数据的"准确性"和数据的"分析 ...
- toad导入数据_配置toad进行导入导出数据库操作
最近需要对oracle进行导入导出操作,于是研究使用toad进行导入导出oracle数据库操作,现稍作记录. oracle的导入导出不管是否使用toad还是pl/sql工具进行操作,实际上最终都是通过 ...
- Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...
- scip指令集_快讯!用于提交物品中SVHC物质信息的SCIP数据库测试版本已经开放
原标题:快讯!用于提交物品中SVHC物质信息的SCIP数据库测试版本已经开放 2020年2月17日,ECHA公布企业可以开始测试用来提交物品中SVHC物质信息的SCIP数据库测试版,此测试版本能够使企 ...
最新文章
- css 圆形背景icon_我写CSS的常用套路(附demo的效果实现与源码)
- 雷神开机logo更改_雷神911 pro-钛空版开售,陪你过一个不一样的520
- c语言检测文件bom,C语言关联TC中BOMWindow与BOPWindow
- 【leetcode】287. 寻找重复数
- 围成面积(信息学奥赛一本通-T1359)
- 一个apache安装后无法启动的原因分析
- Linux下挂载和格式化虚拟磁盘图文教程
- springboot1.5.4 log4j
- office2010的安装和卸载
- python财务预算分析_从审计转到财务分析是怎样一种体验?
- 曲线运动与万有引力公式_高一物理曲线运动万有引力试题
- Idea,webStorm工具栏显示,添加快捷方式建文件
- Banner 怎么实现轮播不同尺寸的图片
- re匹配中文格式的字符
- 编程(代码、软件)规范(适用嵌入式、单片机、上位机等)
- 程序员面试100题之六 最长公共子序列
- 计算机网络,看这篇就够了
- Could not resolve placeholder 占位符不能被解析
- 面试:如何应对人事的面试
- 用电脑搭建视频会议系统的方法