http://funds.bbs.hexun.com/viewarticle.aspx?aid=35686444&bid=7
在網上搜到大智慧資料結構如下
大智慧資料檔案和資料結構:(假設大智慧股票行情軟體安裝在D:/gp/dzh目錄下)
上海日線儲存路徑為:D:/gp/dzh/DATA/SHase/Day,副檔名為:.day
上海周線儲存路徑為:D:/gp/dzh/DATA/SHase/week,副檔名為: .wek
上海月線儲存路徑為:D:/gp/dzh/DATA/SHase/month,副檔名為: .mnt
深圳日線儲存路徑為:D:/gp/dzh/DATA/SZnse/Day
深圳周線儲存路徑為:D:/gp/dzh/DATA/SZnse/week
深圳月線儲存路徑為:D:/gp/dzh/DATA/SZnse/month
周線,月線格式與日線格式一致.
每一條記錄的長度為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/n");
return;
}
if ((fp1=fopen("184721.csv","w"))==NULL)
{printf("cannot open file/n");
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/n",gpjg1.rq,gpjg1.kp,gpjg1.zg,gpjg1.zd,gpjg1.sp,gpjg1.cjje,gpjg1.cjl);
fprintf(fp1,"%lu,%lu,%lu,%lu,%lu,%lu,%lu/n",gpjg1.rq,gpjg1.kp,gpjg1.zg,gpjg1.zd,gpjg1.sp,gpjg1.cjje,gpjg1.cjl);
}
}