hq_cl.c
来自「站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码」· C语言 代码 · 共 2,086 行 · 第 1/4 页
C
2,086 行
return 0;}int SortFloat(LPSORT_DATA lpSortData, int jys){ int key, i, j, k, n; float fval, f1, f; k =HqPaintData.sortData.fldID; for(i=0; i<HqPaintData.recCount-1; i++) { key =i; fval =*(float*)GetHqFldPos1(jys, lpSortData->key[key], k); for(j =i+1; j<HqPaintData.recCount; j++) { f1 =*(float *)GetHqFldPos1(jys, lpSortData->key[j], k); f =f1-fval; if(lpSortData->type ==SORT_UP && f>.0) { key =j; fval =f1; } else if(lpSortData->type ==SORT_DOWN && f<.0) { key =j; fval =f1; } } if(key >i) { //fval =*(float *)GetHqFldPos1(jys, lpSortData->key[key], k); n =lpSortData->key[i]; lpSortData->key[i] =lpSortData->key[key]; lpSortData->key[key] =n; } } return 0;}int SortLong(LPSORT_DATA lpSortData, int jys){ int key, i, j, k, n; long lval, l1, l; k =HqPaintData.sortData.fldID; for(i=0; i<HqPaintData.recCount-1; i++) { key =i; lval =*(long*)GetHqFldPos1(jys, lpSortData->key[key], k); for(j =i+1; j<HqPaintData.recCount; j++) { l1 =*(long *)GetHqFldPos1(jys, lpSortData->key[j], k); l =l1-lval; if(lpSortData->type ==SORT_UP && l>0) { key =j; lval =l1; } else if(lpSortData->type ==SORT_DOWN && l<0) { key =j; lval =l1; } } if(key >i) { //lval =*(long *)GetHqFldPos1(jys, lpSortData->key[key], k); n =lpSortData->key[i]; lpSortData->key[i] =lpSortData->key[key]; lpSortData->key[key] =n; } } return 0;}LPSTR GetHqFldPos(HDC hDC, int jys, int rec_num, int fld_num){ float f; LPSTR lpFld; static long l; if(HqData[jys].lpPreData[rec_num].zrsp!=0) { HqData[jys].lpRefData[rec_num].zdf= (HqData[jys].lpRefData[rec_num].zjjg-HqData[jys].lpPreData[rec_num].zrsp)*100/ HqData[jys].lpPreData[rec_num].zrsp; } SetBkColor(hDC, RGB(0, 0, 0)); switch(fld_num) { case 0: SetTextColor(hDC, RGB(180, 180, 0)); return (LPSTR)&HqData[jys].lpPreData[rec_num].zqdm[0]; case 1: SetTextColor(hDC, RGB(255, 255, 255)); return (LPSTR)&HqData[jys].lpPreData[rec_num].zrsp; case 2: f =((HqData[jys].lpPreData[rec_num].jrkp -HqData[jys].lpPreData[rec_num].zrsp)); lpFld =(LPSTR)&HqData[jys].lpPreData[rec_num].jrkp; break; case 3: f =((HqData[jys].lpRefData[rec_num].zgjg -HqData[jys].lpPreData[rec_num].zrsp)); lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].zgjg; break; case 4: f =((HqData[jys].lpRefData[rec_num].zdjg -HqData[jys].lpPreData[rec_num].zrsp)); lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].zdjg; break; case 5: f =((HqData[jys].lpRefData[rec_num].zgjm -HqData[jys].lpPreData[rec_num].zrsp)); lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].zgjm; break; case 6: f =((HqData[jys].lpRefData[rec_num].zdjm -HqData[jys].lpPreData[rec_num].zrsp)); lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].zdjm; break; case 7: f =((HqData[jys].lpRefData[rec_num].zjjg -HqData[jys].lpPreData[rec_num].zrsp)); lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].zjjg; break; case 8: f =(float)(HqData[jys].lpRefData[rec_num].zdf); lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].zdf; break; case 9: f =HqData[jys].lpRefData[rec_num].zdf; lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].cjss; break; case 10: f =HqData[jys].lpRefData[rec_num].zdf; if(HqData[jys].isJgChanged[rec_num]>0) SetBkColor(hDC, RGB(80, 0, 0)); else if(HqData[jys].isJgChanged[rec_num]<0) SetBkColor(hDC, RGB(0, 80, 0)); else SetBkColor(hDC, RGB(0, 0, 0)); SetTextColor(hDC, RGB(255, 255, 0)); return (LPSTR)&HqData[jys].lpRefData[rec_num].lc; //break; case 11: f =HqData[jys].lpRefData[rec_num].zdf; lpFld = (LPSTR)&HqData[jys].lpRefData[rec_num].npzl; break; case 12: l =HqData[jys].lpRefData[rec_num].cjss -HqData[jys].lpRefData[rec_num].npzl; f =HqData[jys].lpRefData[rec_num].zdf; lpFld =(LPSTR)&l; break; case 13: f =HqData[jys].lpRefData[rec_num].zdf; lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].wb; break; case 14: f =HqData[jys].lpRefData[rec_num].zdf; lpFld =(LPSTR)&HqData[jys].lpRefData[rec_num].cjje; break; case 15: f =HqData[jys].lpRefData[rec_num].zdf; HqZd =HqData[jys].lpRefData[rec_num].zjjg - HqData[jys].lpPreData[rec_num].zrsp; lpFld =(LPSTR)&HqZd; break; } if(f >0) SetTextColor(hDC, RGB(255, 0, 0)); else if(f <0) SetTextColor(hDC, RGB(0, 255, 0)); else SetTextColor(hDC, RGB(255, 255, 255)); return lpFld;}LPSTR GetHqFldPos1(int jys, int rec_num, int fld_num){ long l; if(HqData[jys].lpPreData[rec_num].zrsp!=0) { HqData[jys].lpRefData[rec_num].zdf= (HqData[jys].lpRefData[rec_num].zjjg-HqData[jys].lpPreData[rec_num].zrsp)*100/ HqData[jys].lpPreData[rec_num].zrsp; } switch(fld_num) { case 0: return (LPSTR)&HqData[jys].lpPreData[rec_num].zqdm[0]; case 1: return (LPSTR)&HqData[jys].lpPreData[rec_num].zrsp; case 2: return (LPSTR)&HqData[jys].lpPreData[rec_num].jrkp; case 3: return (LPSTR)&HqData[jys].lpRefData[rec_num].zgjg; case 4: return (LPSTR)&HqData[jys].lpRefData[rec_num].zdjg; case 5: return (LPSTR)&HqData[jys].lpRefData[rec_num].zgjm; case 6: return (LPSTR)&HqData[jys].lpRefData[rec_num].zdjm; case 7: return (LPSTR)&HqData[jys].lpRefData[rec_num].zjjg; case 8: return (LPSTR)&HqData[jys].lpRefData[rec_num].zdf; case 9: return (LPSTR)&HqData[jys].lpRefData[rec_num].cjss; case 10: return (LPSTR)&HqData[jys].lpRefData[rec_num].lc; case 11: return (LPSTR)&HqData[jys].lpRefData[rec_num].npzl; case 12: l =HqData[jys].lpRefData[rec_num].cjss -HqData[jys].lpRefData[rec_num].npzl; return (LPSTR)&l; case 13: return (LPSTR)&HqData[jys].lpRefData[rec_num].wb; case 14: return (LPSTR)&HqData[jys].lpRefData[rec_num].cjje; case 15: HqZd =HqData[jys].lpRefData[rec_num].zjjg - HqData[jys].lpPreData[rec_num].zrsp; return (LPSTR)&HqZd; }}BOOL IsZsRec(int jys, int rec_num){ if(jys ==0) { if(!strncmp(HqData[jys].lpPreData[rec_num].zqdm, "99", 2)) return TRUE; } else if(!strncmp(HqData[jys].lpPreData[rec_num].zqdm, "0000", 4) && (HqData[jys].lpPreData[rec_num].zqdm[4] =='0' ||HqData[jys].lpPreData[rec_num].zqdm[4] =='1')) return TRUE; return FALSE;}void ReadHqDataAll(void){ int jys, i; char fileName[128]; HFILE hf; OFSTRUCT os; extern BOOL HqAllocMem(int); HQ_REF_DATA_V202 DataV202,*lpDataV202; i =250; if(GraphData.lpMinPos ==NULL) GraphData.lpMinPos =(short *)GlobalAllocPtr(GHND, i*sizeof(short)); else GraphData.lpMinPos =(short *)GlobalReAllocPtr(GraphData.lpMinPos, i*sizeof(short), GMEM_MOVEABLE); if(GraphData.lpMinPos ==NULL) { GraphData.minEnd =0; ErrMsg(NULL,"alloc record data memory failed!"); return; } if(GraphData.lpMinLc ==NULL) GraphData.lpMinLc =(long *)GlobalAllocPtr(GHND, i*sizeof(long)); else GraphData.lpMinLc =(long *)GlobalReAllocPtr(GraphData.lpMinLc, i*sizeof(long), GHND); if(GraphData.lpMinLc ==NULL) { GraphData.minEnd =0; ErrMsg(NULL,"alloc record data memory failed!"); return; } strcpy(fileName, szDataPath); strcat(fileName, "\\dpdata.dat"); hf =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_READ); if(hf !=HFILE_ERROR) { _lread(hf, &DpData, sizeof(DpData)); _lclose(hf); } for(jys =0; jys <2; jys++) { strcpy(fileName, szDataPath); if(jys ==0) strcat(fileName, "\\szhq.dat"); else strcat(fileName, "\\shhq.dat"); hf =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_READ); if(hf ==HFILE_ERROR) return; if(_lread(hf, &HqData[jys].recCount, sizeof(int)) !=sizeof(int)) { _lclose(hf); return; } if(HqData[jys].recCount <=0) { _lclose(hf); continue; } if(!HqAllocMem(jys)) { _lclose(hf); return; } if((long)HqData[jys].recCount *(sizeof(HQ_PRE_DATA)+sizeof(HQ_REF_DATA))+sizeof(int) ==_filelength(hf)) { _lread(hf, &HqData[jys].lpPreData[0], sizeof(HQ_PRE_DATA)*HqData[jys].recCount); _lread(hf, &HqData[jys].lpRefData[0], sizeof(HQ_REF_DATA)*HqData[jys].recCount); } else { lpDataV202 =(HQ_REF_DATA_V202 *)malloc(sizeof(HQ_REF_DATA_V202)*HqData[jys].recCount); if(lpDataV202!=NULL) { if((unsigned int)(_read(hf,lpDataV202,sizeof(HQ_REF_DATA_V202)*HqData[jys].recCount))!= (unsigned int)(sizeof(HQ_REF_DATA_V202)*HqData[jys].recCount)) { free(lpDataV202); lpDataV202=NULL; } } for(i=0;i<HqData[jys].recCount;i++) { if(lpDataV202==NULL) _read(hf,&DataV202,sizeof(HQ_REF_DATA_V202)); else memcpy(&DataV202,&lpDataV202[i],sizeof(HQ_REF_DATA_V202)); HqData[jys].lpRefData[i].zdjg =(float)(DataV202.zdjg/100.00); HqData[jys].lpRefData[i].zgjg =(float)((DataV202.zgjg+DataV202.zdjg)/100.00); HqData[jys].lpRefData[i].zdjm =(float)((DataV202.zdjm+DataV202.zdjg)/100.00); HqData[jys].lpRefData[i].zgjm =(float)((DataV202.zgjm+DataV202.zdjg)/100.00); HqData[jys].lpRefData[i].zjjg =(float)((DataV202.zjjg+DataV202.zdjg)/100.00); HqData[jys].lpRefData[i].npzl =DataV202.npzl; HqData[jys].lpRefData[i].cjss =DataV202.npzl+DataV202.cjss; HqData[jys].lpRefData[i].wb =(float)(DataV202.wb/100.00); HqData[jys].lpPreData[i].zrsp =(float)((DataV202.zrsp+DataV202.zdjg)/100.00); HqData[jys].lpPreData[i].jrkp =(float)((DataV202.jrkp+DataV202.zdjg)/100.00); strcpy(HqData[jys].lpPreData[i].zqdm,DataV202.zqdm); strcpy(HqData[jys].lpPreData[i].zqmc,DataV202.zqmc); } if(lpDataV202!=NULL) free(lpDataV202); } _lclose(hf); } strcpy(fileName, szDataPath); strcat(fileName, "\\maxmin.dat"); hf =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_READ); if(hf !=HFILE_ERROR) { _lread(hf, &MaxMinData, sizeof(MaxMinData)); _lclose(hf); }}void WriteHqDataAll(void){ int jys; char fileName[128]; HFILE hf; OFSTRUCT os; strcpy(fileName, szDataPath); strcat(fileName, "\\dpdata.dat"); hf =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE); if(hf !=HFILE_ERROR) { _lwrite(hf, &DpData, sizeof(DpData)); _lclose(hf); } for(jys =0; jys <2; jys++) { if(HqData[jys].recCount <=0) continue; strcpy(fileName, szDataPath); if(jys ==0) strcat(fileName, "\\szhq.dat"); else strcat(fileName, "\\shhq.dat"); hf =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE); if(hf ==HFILE_ERROR) return; if(_lwrite(hf, &HqData[jys].recCount, sizeof(int)) !=sizeof(int)) { _lclose(hf); return; } _lwrite(hf, &HqData[jys].lpPreData[0], sizeof(HQ_PRE_DATA)*HqData[jys].recCount); _lwrite(hf, &HqData[jys].lpRefData[0], sizeof(HQ_REF_DATA)*HqData[jys].recCount); _lclose(hf); } strcpy(fileName, szDataPath); strcat(fileName, "\\maxmin.dat"); hf =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_READ); if(hf ==HFILE_ERROR) { _lwrite(hf, &MaxMinData, sizeof(MaxMinData)); _lclose(hf); }}void DelOldData(void){ int jys; char fileName[128]; OFSTRUCT os; strcpy(fileName, szDataPath); strcat(fileName, "\\dpdata.dat"); unlink(fileName); for(jys =0; jys <2; jys++) { strcpy(fileName, szDataPath); if(jys ==0) strcat(fileName, "\\szhq.dat"); else strcat(fileName, "\\shhq.dat"); unlink(fileName); } strcpy(fileName, szDataPath); strcat(fileName, "\\maxmin.dat"); unlink(fileName); _lclose(hfZx); strcpy(fileName, szDataPath); strcat(fileName, "\\zx.txt"); unlink(fileName); hfZx =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE); _lclose(hfZx); sprintf(fileName,"%s\\news.idx",szDataPath); unlink(fileName); }void ReadHqData(int jys){ char fileName[128]; HFILE hf; OFSTRUCT os; extern BOOL HqAllocMem(int); HQ_REF_DATA_V202 DataV202; int i; strcpy(fileName, szDataPath); if(jys ==0) strcat(fileName, "\\szhq.dat"); else strcat(fileName, "\\shhq.dat"); hf =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_READ); if(hf ==HFILE_ERROR) return; if(_lread(hf, &HqData[jys].recCount, sizeof(int)) !=sizeof(int)) { _lclose(hf); return; } if(HqData[jys].recCount <=0) { _lclose(hf); return; } if(!HqAllocMem(jys)) { _lclose(hf); return; } if((long)HqData[jys].recCount *(sizeof(HQ_PRE_DATA)+sizeof(HQ_REF_DATA))+sizeof(int) ==_filelength(hf)) { _lread(hf, &HqData[jys].lpPreData[0], sizeof(HQ_PRE_DATA)*HqData[jys].recCount); _lread(hf, &HqData[jys].lpRefData[0], sizeof(HQ_REF_DATA)*HqData[jys].recCount); } else { for(i=0;i<HqData[jys].recCount;i++) { _read(hf,&DataV202,sizeof(HQ_REF_DATA_V202)); HqData[jys].lpRefData[i].zdjg =(float)(DataV202.zdjg/100.00); HqData[jys].lpRefData[i].zgjg =(float)(DataV202.zgjg/100.00)+HqData[jys].lpRefData[i].zdjg; HqData[jys].lpRefData[i].zdjm =(float)(DataV202.zdjm/100.00)+HqData[jys].lpRefData[i].zdjg; HqData[jys].lpRefData[i].zgjm =(float)(DataV202.zgjm/100.00)+HqData[jys].lpRefData[i].zdjg; HqData[jys].lpRefData[i].zjjg =(float)(DataV202.zjjg/100.00)+HqData[jys].lpRefData[i].zdjg; HqData[jys].lpRefData[i].npzl =DataV202.npzl; //HqData[jys].lpRefData[i].cjss =DataV202.npzl+DataV202.cjss; HqData[jys].lpRefData[i].cjss =DataV202.cjss; HqData[jys].lpRefData[i].cjje =DataV202.cjje; HqData[jys].lpRefData[i].wb =(float)(DataV202.wb/100.00); HqData[jys].lpPreData[i].zrsp =(float)(DataV202.zrsp/100.00)+HqData[jys].lpRefData[i].zdjg; HqData[jys].lpPreData[i].jrkp =(float)(DataV202.jrkp/100.00)+HqData[jys].lpRefData[i].zdjg; strcpy(HqData[jys].lpPreData[i].zqdm,DataV202.zqdm); strcpy(HqData[jys].lpPreData[i].zqmc,DataV202.zqmc); } } _lclose(hf); }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?