频道栏目
首页 > 程序开发 > 软件开发 > C语言 > 正文
C语言转换大智慧数据
2010-11-09 12:20:02           
收藏   我要投稿

在网上搜到大智慧数据结构如下

大智慧数据文件和数据结构:(假设大智慧股票行情软件安装在D:gpdzh目录下)
上海日线存储路径为:D:gpdzhDATASHaseDay,文件扩展名为:.day
上海周线存储路径为:D:gpdzhDATASHaseweek,文件扩展名为: .wek
上海月线存储路径为:D:gpdzhDATASHasemonth,文件扩展名为: .mnt
深圳日线存储路径为:D:gpdzhDATASZnseDay
深圳周线存储路径为:D:gpdzhDATASZnseweek
深圳月线存储路径为:D:gpdzhDATASZnsemonth
周线,月线格式与日线格式一致.

每一条记录的长度为40字节:
1-4字节为日期,转换为十进制格式如下:19910102
5-8字节=开盘价(元)*1000
9-12字节=最高价(元)*1000
13-16字节=最低价(元)*1000
17-20字节=收盘价(元)*1000
21-24字节=成交金额(元)/1000
25-28字节=成交量(手)
其余12字节未使用

自己写了个C语言的小程序,奉献给大家,希望有人有用。

实现步骤:
定义一个股票价格的数据结构 gpjg

用fread函数读文件
用fprintf函数写文件

程序执行的结果即将二进制文件转换成逗号分割文本文件,由于后缀名为.csv,可以用excel打开,或后续处理。

程序如下:

#include <stdio.h>
#include <stdlib.h>


struct gpjg
{
unsigned long int rq ;
unsigned long int kp ;
unsigned long int zg ;
unsigned long int zd ;
unsigned long int sp ;
unsigned long int cjje ;
unsigned long int cjl ;
unsigned long int l1 ;
unsigned long int l2 ;
unsigned long int l3 ;
}gpjg1;

main()
{FILE *fp;
FILE *fp1;
int i;

if ((fp=fopen("D:\gp\dzh\DATA\SZnse\Day\184721.day","rb"))==NULL)
{printf("cannot open file ");
return;
}

if ((fp1=fopen("184721.csv","w"))==NULL)
{printf("cannot open file ");
return;
}


for (i=0;i<10000;i++) {
fread(&gpjg1,sizeof(struct gpjg),1,fp);
if feof(fp) { return; }
printf("%lu,%lu,%lu,%lu,%lu,%lu,%lu ",gpjg1.rq,gpjg1.kp,gpjg1.zg,gpjg1.zd,gpjg1.sp,gpjg1.cjje,gpjg1.cjl);
fprintf(fp1,"%lu,%lu,%lu,%lu,%lu,%lu,%lu ",gpjg1.rq,gpjg1.kp,gpjg1.zg,gpjg1.zd,gpjg1.sp,gpjg1.cjje,gpjg1.cjl);

}
}

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 智慧 语言 数据
上一篇:C语言中最大公约数求法
下一篇:用C语言操作MySQL数据库,进行连接、插入、修改、删除等操作
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站