📄 heng.c
字号:
retnum =ret; ret =ANS_SUCC; //FldToString(CommBuffer,&CommFile.fldStruct[fld_WTJG],temp); //AnsYecx.kys=atof(temp); //FldToString(CommBuffer,&CommFile.fldStruct[fld_WTGS],temp); //AnsYecx.zjye=atof(temp); if(retnum>0) { AnsYecx.lpGptg=GlobalAllocPtr(GHND,sizeof(JY_GPTG)*retnum); memset(&AnsYecx.lpGptg[0],0,sizeof(JY_GPTG)*retnum); } for(i=0;i<retnum && i<ITEMS;i++) { //if((short)_lread(hFile,&CommBuffer[1],rlen -1)!=rlen -1) // break; strcpy(AnsYecx.lpGptg[i].gpdm,Answer.a_inq_stock[i].stock_code); sprintf(AnsYecx.lpGptg[i].kys,"%8d", Answer.a_inq_stock[i].enable_balance); sprintf(AnsYecx.lpGptg[i].gpye,"%8d", Answer.a_inq_stock[i].current_balance);/* FldToString(CommBuffer,&CommFile.fldStruct[fld_GPDM], &AnsYecx.lpGptg[i].gpdm[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_WTGS], &AnsYecx.lpGptg[i].kys[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_WTJG], &AnsYecx.lpGptg[i].gpye[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_DATE], &AnsYecx.lpGptg[i].ghrq[0]); _llseek(hFile, 2L, FILE_CURRENT);*/ }// if(retnum>0)// {// _lclose(hFile);// remove(tmp);// } AnsYecx.recnum=i; AnsYecx.flag=ret; if(AnsYecx.recnum >=0) { lpJyDest->isSending =TRUE; Thrd_SendJycx(REQ_YECX, lpJyDest->sd, &AnsYecx, lpJyDest->jyNum); if(retnum>0) GlobalFreePtr(AnsYecx.lpGptg); lpJyDest->isSending =FALSE; } } else { AnsYecx.recnum=0; AnsYecx.flag=ANS_SUCC; lpJyDest->isSending =TRUE; Thrd_SendJycx(REQ_YECX, lpJyDest->sd, &AnsYecx, lpJyDest->jyNum); lpJyDest->isSending =FALSE;// lpJyDest->isReqEnd =TRUE;// ClearReq(lpJyDest);// return ret; } lpJyDest->isReqEnd =TRUE; return 0;} int JyDest_Cjcx(LPJY_DEST lpJyDest){ JY_ANS_CJCX AnsCjcx; int i, ret,retnum;/* ReadRecord(AnsFile.hf[lpJyDest->zqsid],lpJyDest->recNum, hlen,rlen,CommBuffer); stat=CommBuffer[*(short*)(CommFile.fldStruct[fld_STAT].offset)]; if(stat !=';') return 0; FldToString(CommBuffer,&CommFile.fldStruct[fld_SERI],temp); if(lpJyDest->jyNum!=atoi(temp)) return 0; ret=CommBuffer[*(short*)(CommFile.fldStruct[fld_ANSNO].offset)]; if(ret==' ') return 0; FldToString(CommBuffer,&CommFile.fldStruct[fld_JYMM],temp); memset(tmp,' ',(short)CommFile.fldStruct[fld_JYMM].wid); if(ret==ANS_SUCC&&strncmp(temp,tmp,(short)CommFile.fldStruct[fld_JYMM].wid)==0) return 0; retnum=atoi(temp); if(ret==ANS_SUCC&&retnum>0) { wsprintf(tmp,"%s%d%s",AnsFile.path[lpJyDest->zqsid],lpJyDest->recNum,".ANS"); hFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READ); if(hFile ==HFILE_ERROR) return 0; i=_llseek(hFile, 0L, FILE_END); if(i==HFILE_ERROR) { _lclose(hFile); return 0; } if((i)/(rlen+1)<retnum) { _lclose(hFile); return 0; } _llseek(hFile, 0L, FILE_BEGIN); }*/ REQUEST_BUFFER ReqBuf; ANSWER Answer; memset(&ReqBuf,0,rlen); ReadRecord(ReqFile.hf[lpJyDest->zqsid],lpJyDest->recNum, hlen,rlen,(char *)&ReqBuf); if(ReqBuf.status !='\002') return 0; memset(&Answer,0,sizeof(Answer)); ReadRecord(AnsFile.hf[lpJyDest->zqsid],lpJyDest->recNum, 0,sizeof(ANSWER),(char *)&Answer); ret =ReqBuf.error; if(ret>=0) { retnum =ret; ret =ANS_SUCC; if(retnum>0) { AnsCjcx.lpCj=GlobalAllocPtr(GHND,sizeof(JY_CJ)*retnum); memset(&AnsCjcx.lpCj[0],0,sizeof(JY_CJ)*retnum); } for(i=0;i<retnum && i<ITEMS;i++) { //memset(CommBuffer,0,sizeof(CommBuffer)); //if((short)_lread(hFile,&CommBuffer[1],rlen -1)!=rlen -1) // break; //if(Answer.a_inq_real[i].real_status =='2') // continue; sprintf(AnsCjcx.lpCj[i].hthm,"%06d", Answer.a_inq_real[i].serial_no); sprintf(AnsCjcx.lpCj[i].cjsj,"%06d", Answer.a_inq_real[i].business_time); AnsCjcx.lpCj[i].mmbz=(Answer.a_inq_real[i].bs=='1')?'B':'S'; strcpy(AnsCjcx.lpCj[i].gpdm, Answer.a_inq_real[i].stock_code); sprintf(AnsCjcx.lpCj[i].cjgs,"%8d", Answer.a_inq_real[i].business_amount); sprintf(AnsCjcx.lpCj[i].cjjg,"%6.2f", Answer.a_inq_real[i].business_price);/* FldToString(CommBuffer,&CommFile.fldStruct[fld_HTHM], &AnsCjcx.lpCj[i].hthm[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_DATE], &AnsCjcx.lpCj[i].cjsj[0]); AnsCjcx.lpCj[i].mmbz= CommBuffer[*(short*)(CommFile.fldStruct[fld_ANSNO].offset)]; FldToString(CommBuffer,&CommFile.fldStruct[fld_GPDM], &AnsCjcx.lpCj[i].gpdm[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_WTGS], &AnsCjcx.lpCj[i].cjgs[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_WTJG], &AnsCjcx.lpCj[i].cjjg[0]); _llseek(hFile, 2L, FILE_CURRENT);*/ } AnsCjcx.recnum=i; AnsCjcx.flag =ret; if(AnsCjcx.recnum >=0) { lpJyDest->isSending =TRUE; Thrd_SendJycx(REQ_CJCX, lpJyDest->sd, &AnsCjcx, lpJyDest->jyNum); if(retnum>0) GlobalFreePtr(AnsCjcx.lpCj); lpJyDest->isSending =FALSE; } } else { AnsCjcx.recnum=0; AnsCjcx.flag =ANS_SUCC; lpJyDest->isSending =TRUE; Thrd_SendJycx(REQ_CJCX, lpJyDest->sd, &AnsCjcx, lpJyDest->jyNum); lpJyDest->isSending =FALSE; } lpJyDest->isReqEnd =TRUE; return 0;}int JyDest_Wtcx(LPJY_DEST lpJyDest){ JY_ANS_WTCX AnsWtcx; int ret, i,retnum;/* ReadRecord(AnsFile.hf[lpJyDest->zqsid],lpJyDest->recNum, hlen,rlen,CommBuffer); stat=CommBuffer[*(short*)(CommFile.fldStruct[fld_STAT].offset)]; if(stat !=';') return 0; FldToString(CommBuffer,&CommFile.fldStruct[fld_SERI],temp); if(lpJyDest->jyNum!=atoi(temp)) return 0; ret=CommBuffer[*(short*)(CommFile.fldStruct[fld_ANSNO].offset)]; if(ret==' ') return 0; FldToString(CommBuffer,&CommFile.fldStruct[fld_JYMM],temp); memset(tmp,' ',(short)CommFile.fldStruct[fld_JYMM].wid); if(ret==ANS_SUCC&&strncmp(temp,tmp,(short)CommFile.fldStruct[fld_JYMM].wid)==0) return 0; retnum=atoi(temp); if(ret==ANS_SUCC&&retnum>0) { wsprintf(temp,"%s%d%s",AnsFile.path[lpJyDest->zqsid],lpJyDest->recNum,".ANS"); hFile =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_READ); if(hFile ==HFILE_ERROR) return 0; i=_llseek(hFile, 0L, FILE_END); if(i==HFILE_ERROR) { _lclose(hFile); return 0; } if((i)/(rlen+1)<retnum) { _lclose(hFile); return 0; } _llseek(hFile, 0L, FILE_BEGIN); }*/ REQUEST_BUFFER ReqBuf; ANSWER Answer; memset(&ReqBuf,0,rlen); ReadRecord(ReqFile.hf[lpJyDest->zqsid],lpJyDest->recNum, hlen,rlen,(char *)&ReqBuf); if(ReqBuf.status !='\002') return 0; memset(&Answer,0,sizeof(Answer)); ReadRecord(AnsFile.hf[lpJyDest->zqsid],lpJyDest->recNum, 0,sizeof(ANSWER),(char *)&Answer); ret =ReqBuf.error; if(ret>=0) { retnum =ret; ret =ANS_SUCC; if(retnum>0) { AnsWtcx.lpWt =GlobalAllocPtr(GHND,sizeof(JY_WT)*retnum); memset(&AnsWtcx.lpWt[0], 0, sizeof(JY_WT)*retnum); } for(i=0;i<retnum && i<ITEMS;i++) { //if(Answer.a_inq_entrust[i].entrust_status=='4') // continue; sprintf(AnsWtcx.lpWt[i].hthm,"%06d", Answer.a_inq_entrust[i].entrust_serial_no); sprintf(AnsWtcx.lpWt[i].wtsj," : : "); AnsWtcx.lpWt[i].mmbz= (Answer.a_inq_entrust[i].entrust_bs=='1')?'B':'S'; strcpy(AnsWtcx.lpWt[i].gpdm, Answer.a_inq_entrust[i].stock_code); sprintf(AnsWtcx.lpWt[i].wtgs,"%8d", Answer.a_inq_entrust[i].entrust_amount); sprintf(AnsWtcx.lpWt[i].wtjg,"%6.2f", Answer.a_inq_entrust[i].entrust_price);/* memset(CommBuffer,0,sizeof(CommBuffer)); if((short)_lread(hFile,&CommBuffer[1],rlen -1)!=rlen -1) break; FldToString(CommBuffer,&CommFile.fldStruct[fld_HTHM], &AnsWtcx.lpWt[i].hthm[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_DATE], &AnsWtcx.lpWt[i].wtsj[0]); AnsWtcx.lpWt[i].mmbz= CommBuffer[*(short*)(CommFile.fldStruct[fld_ANSNO].offset)]; FldToString(CommBuffer,&CommFile.fldStruct[fld_GPDM], &AnsWtcx.lpWt[i].gpdm[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_WTGS], &AnsWtcx.lpWt[i].wtgs[0]); FldToString(CommBuffer,&CommFile.fldStruct[fld_WTJG], &AnsWtcx.lpWt[i].wtjg[0]); _llseek(hFile, 2L, FILE_CURRENT);*/ } AnsWtcx.recnum=i; AnsWtcx.flag =ret; if(AnsWtcx.recnum >=0) { lpJyDest->isSending =TRUE; Thrd_SendJycx(REQ_WTCX, lpJyDest->sd, &AnsWtcx, lpJyDest->jyNum); if(AnsWtcx.recnum>0) GlobalFreePtr(AnsWtcx.lpWt); lpJyDest->isSending =FALSE; } } else { AnsWtcx.recnum=0; AnsWtcx.flag =ANS_SUCC; lpJyDest->isSending =TRUE; Thrd_SendJycx(REQ_WTCX, lpJyDest->sd, &AnsWtcx, lpJyDest->jyNum); lpJyDest->isSending =FALSE; } lpJyDest->isReqEnd =TRUE; return 0;}int Thrd_SendJycx(int reqType, int sd, char *lpBuf, int jyNum){ char SendBuff[2048]; LPJY_ANS_YECX lpAnsYecx; LPJY_ANS_CJCX lpAnsCjcx; LPJY_ANS_WTCX lpAnsWtcx; int i, len, recCount, sendCount, sendNum; sendNum =0; sendCount =MAX_CX_SENDCOUNT; switch(reqType) { case REQ_YECX: lpAnsYecx =(LPJY_ANS_YECX)lpBuf; recCount =lpAnsYecx->recnum; for(i =0; i<=recCount/MAX_CX_SENDCOUNT; i++) { sendNum =i*MAX_CX_SENDCOUNT; if(sendNum+sendCount >recCount) sendCount =recCount-sendNum; strcpy(SendBuff, JY_YECX_HEAD); len =strlen(SendBuff); *(short *)&SendBuff[len] =jyNum; len +=sizeof(short); lpAnsYecx->recnum=sendCount; memcpy(&SendBuff[len],lpAnsYecx,sizeof(JY_ANS_YECX)-sizeof(LPJY_GPTG)); len+=sizeof(JY_ANS_YECX)-sizeof(LPJY_GPTG); if(sendCount==0&&sendNum!=0) break; if(sendCount>0) { memcpy(&SendBuff[len], &lpAnsYecx->lpGptg[sendNum], sizeof(JY_GPTG)*sendCount); len +=sizeof(JY_GPTG)*sendCount; } if(UDP_SendBuff("余额查询", sd, SendBuff, len,NULL)<0) return -1; } break; case REQ_CJCX: lpAnsCjcx =(LPJY_ANS_CJCX)lpBuf; recCount =lpAnsCjcx->recnum; sendCount =MAX_CX_SENDCOUNT; for(i =0; i<=recCount/MAX_CX_SENDCOUNT; i++) { sendNum =i*MAX_CX_SENDCOUNT; if(sendNum+sendCount >recCount) sendCount =recCount-sendNum; strcpy(SendBuff, JY_CJCX_HEAD); len =strlen(SendBuff); *(short *)&SendBuff[len] =jyNum; len +=sizeof(short); lpAnsCjcx->recnum=sendCount; memcpy(&SendBuff[len],lpAnsCjcx,sizeof(JY_ANS_CJCX)-sizeof(LPJY_CJ)); len+=sizeof(JY_ANS_CJCX)-sizeof(LPJY_CJ); if(sendCount==0&&sendNum!=0) break; if(sendCount>0) { memcpy(&SendBuff[len], &lpAnsCjcx->lpCj[sendNum], sizeof(JY_CJ)*sendCount); len +=sizeof(JY_CJ)*sendCount; } if(UDP_SendBuff("成交查询", sd, SendBuff, len,NULL)<0) return -1; } break; case REQ_WTCX: lpAnsWtcx =(LPJY_ANS_WTCX)lpBuf; recCount =lpAnsWtcx->recnum; sendCount =MAX_CX_SENDCOUNT; for(i =0; i<=recCount/MAX_CX_SENDCOUNT; i++) { sendNum =i*MAX_CX_SENDCOUNT; if(sendNum+sendCount >recCount) sendCount =recCount-sendNum; strcpy(SendBuff, JY_WTCX_HEAD); len =strlen(SendBuff); *(short *)&SendBuff[len] =jyNum; len +=sizeof(short); lpAnsWtcx->recnum=sendCount; memcpy(&SendBuff[len],lpAnsWtcx,sizeof(JY_ANS_WTCX)-sizeof(LPJY_WT)); len+=sizeof(JY_ANS_WTCX)-sizeof(LPJY_WT); if(sendCount>0) { memcpy(&SendBuff[len], &lpAnsWtcx->lpWt[sendNum], sizeof(JY_WT)*sendCount); len +=sizeof(JY_WT)*sendCount; } if(sendCount==0&&sendNum!=0) break; if(UDP_SendBuff("委托查询", sd, SendBuff, len,NULL)<0) return -1; } break; } strcpy(SendBuff, JY_CXEND_HEAD); len =strlen(SendBuff); UDP_SendBuff("查询成功", sd, SendBuff, len,NULL); return 0;}int Jy_SendRet(int sd, char reqType, char ret, int jyNum){ int len; BYTE SendBuff[100]; LPSTR lpHead; if(ret ==ANS_TIME_OUT) lpHead =JY_TIMEOUT_HEAD; else switch(reqType) { case REQ_CHKUSR: lpHead =JY_CHKUSR_HEAD; break; case REQ_CHGPWD: lpHead =JY_CHGPWD_HEAD; break; case REQ_BUYSEL: lpHead =JY_BUYSELL_HEAD; break; case REQ_CANCEL: lpHead =JY_CANCEL_HEAD; break; case REQ_YECX: lpHead =JY_YECX_HEAD; break; case REQ_CJCX: lpHead =JY_CJCX_HEAD; break; case REQ_WTCX: lpHead =JY_WTCX_HEAD; break; } strcpy(SendBuff, lpHead); len =strlen(SendBuff); *(short *)&SendBuff[len] =jyNum; len +=sizeof(short); SendBuff[len++] =(char)ret; UDP_SendBuff("发送结果", sd, SendBuff, len,NULL); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -