SV_DATA.C
上传用户:bjghjy
上传日期:2007-01-07
资源大小:379k
文件大小:5k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <windowsx.h>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <string.h>
  6. #include <time.h>
  7. #include "main.h"
  8. #include "hq.h"
  9. #include "data.h"
  10. #include "cl_hq.h"
  11. #include "cl_data.h"
  12. HFILE hfHq[2], hfMmp[2], hfDp, hfMaxMin[2], hfGraHead[2];
  13. extern void MsgLocal(LPSTR msg);
  14. extern HWND ghWndMain;
  15. int ReadHqAll(int jys)
  16. {
  17. if(ReadHqData(jys)<0)
  18. {
  19. ErrMsg(NULL, "ReadHqData failed!");
  20. return -1;
  21. }
  22. if(jys ==0)
  23. {
  24. if(ReadDpData()<0)
  25. {
  26. ErrMsg(NULL, "ReadDpData failed!");
  27. return -1;
  28. }
  29. }
  30. if(ReadMmpData(jys)<0)
  31. {
  32. ErrMsg(NULL, "ReadMmpData failed!");
  33. //return -1;
  34. }
  35. if(ReadMaxMinData(jys)<0)
  36. {
  37. ErrMsg(NULL, "ReadMaxMinData failed!");
  38. return -1;
  39. }
  40. if(ReadGraHead(jys)<0)
  41. {
  42. ErrMsg(NULL, "ReadGraHead failed!");
  43. return -1;
  44. }
  45. return 0;
  46. }
  47. int RefreshHq(int jys)
  48. {
  49. short recCount;
  50. // int ret;
  51. // static seri =0;
  52. if(hfHq[jys] <0)
  53. return 0;
  54. _llseek(hfHq[jys], 0, SEEK_SET);
  55. if(_lread(hfHq[jys], &recCount,
  56. sizeof(short)) !=sizeof(short))
  57. {
  58. ErrMsg(ghWndMain, "来自RefreshHq():读行情数据文件头错");
  59. return -1;
  60. }
  61. if(recCount<=0||recCount>1000)
  62. return -1;
  63. //if(HqData[jys].recCount ==0||HqData[jys].recCount <recCount)
  64. //{
  65. // ret =HqAllocMem(jys, recCount);
  66. // if(ret<0) return -1;
  67. //}
  68. if(ReadHqData(jys)<0)
  69. return -1;
  70. if(jys ==0)
  71. {
  72. if(ReadDpData()<0)
  73. return -1;
  74. }
  75. ReadMmpData(jys);
  76. ReadMaxMinData(jys);
  77. // if(seri ==0)
  78. // {
  79. CreateLzwMemData(jys);
  80. // seri++;
  81. // if(seri ==2) seri =0;
  82. // }
  83. return 0;
  84. }
  85. extern short date_num;
  86. int ReadGraHead(int jys)
  87. {
  88. int i;
  89. char temp[128];
  90. HFILE hFile;
  91. OFSTRUCT os;
  92. for(i =0; i<HqData[jys].recCount; i++)
  93. {
  94. wsprintf(temp, "%s\%s.dat",
  95. GraphData[jys].szGraPath,
  96. HqData[jys].lpPreData[i].zqdm);
  97. hFile =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_READ);
  98. if(hFile ==HFILE_ERROR)
  99. goto reset_values;
  100. else
  101. {
  102. if(_lread(hFile, &GraphData[jys].lpGraHead[i],
  103. sizeof(GRA_HEAD)) !=sizeof(GRA_HEAD))
  104. goto reset_values;
  105. //else
  106. // if(GraphData[jys].lpGraHead[i].dateNum !=date_num)
  107. // goto reset_values;
  108. _lclose(hFile);
  109. continue;
  110. }
  111. reset_values:
  112. memset(&GraphData[jys].lpGraHead[i], 0, sizeof(GRA_HEAD));
  113. GraphData[jys].lpGraHead[i].dateNum =date_num;
  114. GraphData[jys].lpGraHead[i].zrsp =HqData[jys].lpPreData[i].zrsp;
  115. //GraphData[jys].lpGraHead[i].zl =HqData[jys].lpRefData[i].cjss;
  116. GraphData[jys].lpGraHead[i].zgjg =HqData[jys].lpRefData[i].zgjg;
  117. GraphData[jys].lpGraHead[i].zdjg =HqData[jys].lpRefData[i].zdjg;
  118. if(hFile !=HFILE_ERROR) _lclose(hFile);
  119. }
  120. return 0;
  121. }
  122. int ReadHqData(int jys)
  123. {
  124. char tmp[100],temp[100];
  125. // int i;
  126. sprintf(tmp, "读取行情数据:%s", (jys==0)?"深圳":"上海");
  127. MsgLocal(tmp);
  128. _llseek(hfHq[jys], 0, FILE_BEGIN);
  129. if(_lread(hfHq[jys], &HqData[jys].recCount, sizeof(short))
  130. !=sizeof(short))
  131. {
  132. wsprintf(temp,"%s:%s",(jys==0)?"深圳":"上海","来自ReadHqData:读文件头失败");
  133. ErrMsg(ghWndMain,temp);
  134. return -1;
  135. }
  136. //for(i=0;i<HqData[jys].recCount;i++)
  137. //{
  138. if(_lread(hfHq[jys], HqData[jys].lpPreData, (UINT)HqData[jys].recCount*sizeof(HQ_PRE_DATA))
  139. !=(UINT)HqData[jys].recCount*sizeof(HQ_PRE_DATA))
  140. {
  141. wsprintf(temp,"%s:%s",(jys==0)?"深圳":"上海","来自ReadHqData:读文件固定部分失败");
  142. ErrMsg(ghWndMain,temp);
  143. return -1;
  144. }
  145. //_lread(hfHq[jys], &HqData[jys].lpPreData[i], sizeof(HQ_PRE_DATA));
  146. //}
  147.     //for(i=0;i<HqData[jys].recCount;i++)
  148. //{
  149. if(_lread(hfHq[jys], HqData[jys].lpRefData, (UINT)HqData[jys].recCount*sizeof(HQ_REF_DATA))
  150. !=(UINT)HqData[jys].recCount*sizeof(HQ_REF_DATA))
  151. {
  152. wsprintf(temp,"%s:%s",(jys==0)?"深圳":"上海","来自ReadHqData:读文件刷新部分失败");
  153. ErrMsg(ghWndMain,temp);
  154. return -1;
  155. }
  156. //_lread(hfHq[jys], &HqData[jys].lpRefData[i], sizeof(HQ_REF_DATA));
  157. //}
  158. return 0;
  159. }
  160. int ReadDpData(void)
  161. {
  162. MsgLocal("读取大盘数据");
  163. _llseek(hfDp, 0, SEEK_SET);
  164. if(_lread(hfDp, &DpData, sizeof(DpData)) !=sizeof(DpData))
  165. {
  166. ErrMsg(ghWndMain,"来自ReadDpData:读文件失败");
  167. return -1;
  168. }
  169. return 0;
  170. }
  171. int ReadMmpData(int jys)
  172. {
  173. char tmp[100];
  174. // int i;
  175. sprintf(tmp, "读取买卖盘数据:%s", (jys==0)?"深圳":"上海");
  176. MsgLocal(tmp);
  177. _llseek(hfMmp[jys], 0, SEEK_SET);
  178. //for(i=0;i<HqData[jys].recCount;i++)
  179. //{
  180. if(_lread(hfMmp[jys], MmpData[jys].lpMmp, sizeof(MMP)*HqData[jys].recCount)
  181. !=(UINT)sizeof(MMP)*HqData[jys].recCount)
  182. {
  183. // ErrMsg(ghWndMain,"来自ReadMmpData:读文件失败");
  184. return -1;
  185. }
  186. //_lread(hfMmp[jys], &MmpData[jys].lpMmp[i], sizeof(MMP));
  187. //}
  188. return 0;
  189. }
  190.                      
  191. int ReadMaxMinData(int jys)
  192. {
  193. //char temp[100];
  194. _llseek(hfMaxMin[jys], 0, SEEK_SET);
  195. if(_lread(hfMaxMin[jys], &MaxMinData[jys], sizeof(MaxMinData[jys]))
  196. !=sizeof(MaxMinData[jys]))
  197. {
  198. //wsprintf(temp,"%s:%s",(jys==0)?"深圳":"上海",
  199. // "来自ReadMaxMinData:读文件失败");
  200. //ErrMsg(ghWndMain,temp);
  201. return -1;
  202. }
  203. return 0;
  204. }
  205. int HqAllocMem(int jys, short recCount)
  206. {
  207. return clHqAllocMem(jys,(int)recCount);
  208. }