⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sv_jy.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
📖 第 1 页 / 共 3 页
字号:
		strcpy(SendBuff, JY_CANCEL_HEAD);	len =strlen(SendBuff);	*(short *)&SendBuff[len] =lpJyDest->jyNum;	len +=sizeof(short);	memcpy(&SendBuff[len], &AnsCancel, sizeof(AnsCancel));	len +=sizeof(AnsCancel);	UDP_SendBuff("撤消委托", lpJyDest->sd, SendBuff, len,NULL);	lpJyDest->isReqEnd =TRUE;	ClearReq(lpJyDest);	return 0;}	       int JyDest_Yecx(LPJY_DEST lpJyDest){	char temp[40],tmp[40];	JY_ANS_YECX AnsYecx;	int ret, i,retnum;	char stat;	HFILE hFile;	OFSTRUCT os;    HANDLE hd;	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);	}	if(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=(LPJY_GPTG)malloc(sizeof(JY_GPTG)*retnum);			hd =GlobalAlloc(GHND,sizeof(JY_GPTG)*retnum);			AnsYecx.lpGptg=GlobalLock(hd);			memset(&AnsYecx.lpGptg[0],0,sizeof(JY_GPTG)*retnum);		}		for(i=0;i<retnum;i++)		{			memset(CommBuffer,0,sizeof(CommBuffer));			if((short)_lread(hFile,&CommBuffer[1],rlen -1)!=rlen -1)				break;			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=retnum;		AnsYecx.flag=ret;		if(AnsYecx.recnum >=0)		{			lpJyDest->isSending =TRUE;			Thrd_SendJycx(REQ_YECX, lpJyDest->sd, &AnsYecx, lpJyDest->jyNum);			if(retnum>0)			{				//free(AnsYecx.lpGptg);				GlobalUnlock(hd);				GlobalFree(hd);			}			lpJyDest->isSending =FALSE;		}	}	else	{		lpJyDest->isReqEnd =TRUE;        ClearReq(lpJyDest);    	return ret;	}	lpJyDest->isReqEnd =TRUE;	ClearReq(lpJyDest);	return 0;}	       int JyDest_Cjcx(LPJY_DEST lpJyDest){	JY_ANS_CJCX AnsCjcx;	int i, ret,retnum;	char stat, temp[40],tmp[40];	HFILE hFile;	OFSTRUCT os;	HANDLE hd;	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);	}	if(ret==ANS_SUCC)	{ 		if(retnum>0)		{			//AnsCjcx.lpCj=(LPJY_CJ)malloc(sizeof(JY_CJ)*retnum);			hd =GlobalAlloc(GHND,sizeof(JY_CJ)*retnum);			AnsCjcx.lpCj=GlobalLock(hd);			memset(&AnsCjcx.lpCj[0],0,sizeof(JY_CJ)*retnum);		}		for(i=0;i<retnum;i++)		{			memset(CommBuffer,0,sizeof(CommBuffer));			if((short)_lread(hFile,&CommBuffer[1],rlen -1)!=rlen -1)				break;			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);		}		if(retnum>0)		{			_lclose(hFile);			remove(tmp);		}		AnsCjcx.recnum=retnum;		AnsCjcx.flag =ret;		if(AnsCjcx.recnum >=0)		{			lpJyDest->isSending =TRUE;			Thrd_SendJycx(REQ_CJCX, lpJyDest->sd, &AnsCjcx, lpJyDest->jyNum);			if(retnum>0)			{				//free(AnsCjcx.lpCj);				GlobalUnlock(hd);				GlobalFree(hd);			}			lpJyDest->isSending =FALSE;		}	}	else	{		lpJyDest->isReqEnd =TRUE;		ClearReq(lpJyDest);		return ret;	}	lpJyDest->isReqEnd =TRUE;	ClearReq(lpJyDest);	return 0;}int JyDest_Wtcx(LPJY_DEST lpJyDest){	JY_ANS_WTCX AnsWtcx;	int ret, i,retnum;	char stat, temp[40],tmp[40];	HFILE hFile;	OFSTRUCT os;	HANDLE hd;	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);	}	if(ret==ANS_SUCC)	{ 		if(retnum>0)		{			//AnsWtcx.lpWt=(LPJY_WT)malloc(sizeof(JY_WT)*retnum);			hd =GlobalAlloc(GHND,sizeof(JY_WT)*retnum);			AnsWtcx.lpWt =GlobalLock(hd);			memset(&AnsWtcx.lpWt[0], 0, sizeof(JY_WT)*retnum);		}		for(i=0;i<retnum;i++)		{			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);		}		if(retnum>0)		{			_lclose(hFile);			remove(tmp);		}		AnsWtcx.recnum=retnum;		AnsWtcx.flag =ret;		if(AnsWtcx.recnum >=0)		{			lpJyDest->isSending =TRUE;			Thrd_SendJycx(REQ_WTCX, lpJyDest->sd, &AnsWtcx, lpJyDest->jyNum);			if(AnsWtcx.recnum>0)			{				//free(AnsWtcx.lpWt);				GlobalUnlock(hd);				GlobalFree(hd);			}			lpJyDest->isSending =FALSE;		}	}	else	{		lpJyDest->isReqEnd =TRUE;		ClearReq(lpJyDest);		return ret;	}	lpJyDest->isReqEnd =TRUE;	ClearReq(lpJyDest);	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 + -