在網上搜到大智慧數據結構如下
大智慧數據文件和數據結構:(假設大智慧股票行情軟件安裝在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);
}
}