📄 cl_data.c
字号:
BOOL WriteGraData(int jys,int i){ char tmp[50]; HFILE hFile; OFSTRUCT os; UINT ret; wsprintf(tmp, "%s\\%s.dat", GraphData[jys].szGraPath, HqData[jys].lpPreData[i].zqdm); //GraphData[jys].lpGraHead[i].dateNum =date_num; //GraphData[jys].lpGraHead.zrsp =HqData[jys].lpRefData[i].zrsp; //GraphData[jys].lpGraData[i].tim =tim; hFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hFile ==HFILE_ERROR) return FALSE; if(_llseek(hFile, sizeof(GRA_HEAD)+(GraphData[jys].lpGraHead[i].recCount-1)*sizeof(GRA_DATA), SEEK_SET) ==HFILE_ERROR) { _lclose(hFile); return FALSE; } ret =_lwrite(hFile, (char *)&GraphData[jys].lpGraData[i],sizeof(GRA_DATA)); _llseek(hFile, 0, SEEK_SET); ret =_lwrite(hFile, (char *)&GraphData[jys].lpGraHead[i],sizeof(GRA_HEAD)); _lclose(hFile); return TRUE;}int WriteMinData(int jys){ return 0;}BOOL WriteDayData(int jys){ int i; long day_cur; char tmp[128]; DAY_DATA dayData; HFILE hFile; OFSTRUCT os; time_t ltime; struct tm *ptm; //static BOOL fWrited[2] ={FALSE, FALSE}; long len; if(fWrited[jys]) { MsgLocal("history data already writed!"); return TRUE; } MsgLocal("Write day data..."); time(<ime); ptm =localtime(<ime); day_cur =(long)(1900+ptm->tm_year)*10000+(long)(ptm->tm_mon+1)*100+ptm->tm_mday; for (i=0;i<HqData[jys].recCount;i++) { while(UDPBlockingHook()); if(run_cancelled) break; if(GraphData[jys].lpGraHead[i].recCount <=0) continue; wsprintf(tmp, "%s\\%s\\%s.day", szDataPath, (jys ==0)?"SZDAY":"SHDAY", HqData[jys].lpPreData[i].zqdm); hFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hFile ==HFILE_ERROR) { hFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE); if(hFile ==HFILE_ERROR) { ErrMsg(NULL, "Create file failed"); ErrMsg(NULL, tmp); continue; } } else { _llseek(hFile, 0, SEEK_SET); len =_llseek(hFile, 0, SEEK_END); if(len!=0) { if(_llseek(hFile, len-sizeof(dayData), SEEK_SET) ==HFILE_ERROR) { _llseek(hFile, 0, SEEK_SET); } else if(_lread(hFile, &dayData, sizeof(dayData)) !=sizeof(dayData)) { ErrMsg(NULL, "Read file failed"); ErrMsg(NULL, tmp); _lclose(hFile); continue; } else if(dayData.day ==day_cur) { _lclose(hFile); continue; } } } dayData.day =day_cur; dayData.kpjg =HqData[jys].lpPreData[i].jrkp; dayData.spjg =HqData[jys].lpRefData[i].zjcj; dayData.zgjg =HqData[jys].lpRefData[i].zgjg; dayData.zdjg =HqData[jys].lpRefData[i].zdjg; dayData.cjss =HqData[jys].lpRefData[i].cjss; dayData.cjje =HqData[jys].lpRefData[i].cjje; _lwrite(hFile,(char *)&dayData,sizeof(DAY_DATA)); _lclose(hFile); } MsgLocal("Write day data ok"); fWrited[jys] =TRUE; return TRUE;}BOOL WriteWeekData(int jys){ int i,j; char tmp[100]; HISTORY_DATA WeekData,DayData,NextDayData; HFILE hWeekFile,hDayFile; OFSTRUCT os; time_t c_time1,c_time2; static BOOL fWrited[2] ={FALSE, FALSE}; if(fWrited[jys]) { MsgLocal("week data already writed"); return TRUE; } MsgLocal("Write week data..."); for (i=0;i<HqData[jys].recCount;i++) { while(UDPBlockingHook()); if(run_cancelled) break; //打开日线文件 memset(tmp,0,100); if(jys==0) wsprintf(tmp, "%s%s.day","szase\\day\\" , HqData[jys].lpPreData[i].zqdm); else wsprintf(tmp, "%s%s.day","shase\\day\\" , HqData[jys].lpPreData[i].zqdm); //MsgLocal(HqData[jys].lpPreData[i].zqdm); hDayFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hDayFile ==HFILE_ERROR) { _lclose(hDayFile); continue; } _llseek(hDayFile,-1*(long)(sizeof(HISTORY_DATA)),SEEK_END); if(_lread(hDayFile,&DayData,sizeof(HISTORY_DATA))!= sizeof(HISTORY_DATA)) { _lclose(hDayFile); continue; } memcpy(&WeekData,&DayData,sizeof(HISTORY_DATA)); memcpy(&c_time1,DayData.date+6,sizeof(time_t)); j=2; while(TRUE) { if(j>7) break; _llseek(hDayFile,-j*(long)(sizeof(HISTORY_DATA)),SEEK_END); if(_lread(hDayFile,&NextDayData,sizeof(HISTORY_DATA))!= sizeof(HISTORY_DATA)) break; memcpy(&c_time2,NextDayData.date+6,sizeof(time_t)); if((int)(difftime(c_time1,c_time2)/(24.00*60.00))>=7) break; //计算周线 WeekData.ks=NextDayData.ks; WeekData.cj+=NextDayData.cj; if(WeekData.zg<NextDayData.zg) WeekData.zg=NextDayData.zg; if(WeekData.zd>NextDayData.zd) WeekData.zg=NextDayData.zd; j++; } //写周线文件 if(jys==0) wsprintf(tmp, "%s%s.wek","szase\\week\\", HqData[jys].lpPreData[i].zqdm); else wsprintf(tmp, "%s%s.wek","shase\\week\\", HqData[jys].lpPreData[i].zqdm); hWeekFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hWeekFile ==HFILE_ERROR) { hWeekFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE); } _llseek(hWeekFile,0L,SEEK_END); _lwrite(hWeekFile,(char*)&WeekData,sizeof(HISTORY_DATA)); _lclose(hWeekFile); _lclose(hDayFile); } MsgLocal("Write week data ok"); fWrited[jys] =TRUE; return TRUE;}BOOL WriteMonthData(int jys){ int i,j; char tmp[100]; HISTORY_DATA WeekData,MonthData,NextWeekData; HFILE hWeekFile,hMonthFile; OFSTRUCT os; static BOOL fWrited[2] ={FALSE, FALSE}; if(fWrited[jys]) { MsgLocal("month data already writed!"); return TRUE; } MsgLocal("Write month data..."); for (i=0;i<HqData[jys].recCount;i++) { while(UDPBlockingHook()); if(run_cancelled) break; //打开周线文件 if(jys==0) wsprintf(tmp, "%s%s.wek","szase\\week\\" , HqData[jys].lpPreData[i].zqdm); else wsprintf(tmp, "%s%s.wek","shase\\week\\" , HqData[jys].lpPreData[i].zqdm); //MsgLocal(HqData[jys].lpPreData[i].zqdm); hWeekFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hWeekFile ==HFILE_ERROR) { _lclose(hWeekFile); continue; } _llseek(hWeekFile,-1*(long)(sizeof(HISTORY_DATA)),SEEK_END); if(_lread(hWeekFile,&WeekData,sizeof(HISTORY_DATA))!= sizeof(HISTORY_DATA)) { _lclose(hWeekFile); continue; } memcpy(&MonthData,&WeekData,sizeof(HISTORY_DATA)); j=2; while(TRUE) { if(j>31) break; _llseek(hWeekFile,-j*(long)(sizeof(HISTORY_DATA)),SEEK_END); if(_lread(hWeekFile,&NextWeekData,sizeof(HISTORY_DATA))!= sizeof(HISTORY_DATA)) break; if(!strncmp(WeekData.date+2,NextWeekData.date+2,2)) break; //计算月线 MonthData.ks=NextWeekData.ks; MonthData.cj+=NextWeekData.cj; if(MonthData.zg<NextWeekData.zg) MonthData.zg=NextWeekData.zg; if(MonthData.zd>NextWeekData.zd) MonthData.zg=NextWeekData.zd; j++; } //写月线文件 if(jys==0) wsprintf(tmp, "%s%s.mot","szase\\month\\", HqData[jys].lpPreData[i].zqdm); else wsprintf(tmp, "%s%s.mot","shase\\month\\", HqData[jys].lpPreData[i].zqdm); hMonthFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE); if(hMonthFile ==HFILE_ERROR) { hMonthFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE); } _llseek(hMonthFile,0L,SEEK_END); _lwrite(hMonthFile,(char*)&MonthData,sizeof(HISTORY_DATA)); _lclose(hMonthFile); _lclose(hWeekFile); } MsgLocal("Write month data ok"); fWrited[jys] =TRUE; return TRUE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -