程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言轉換大智慧數據

C語言轉換大智慧數據

編輯:關於C語言

在網上搜到大智慧數據結構如下

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

}
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved