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

📄 sv_g5m.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
字号:
extern char szDataPath[128];int UDP_Server_Write_G5M(int jys, int rec_num, int day_start, struct sockaddr *lpdest){	int i, j, len;	char fileName[128];	G5M_HEAD G5MHead;	G5M_DATE_HEAD G5MDateHead;	LPGMIN_DATA lpGMinData =NULL;	HFILE hFile;	OFSTRUCT os;		if(jys ==0)		lpszTmp ="SZMIN5";	else if(jys ==1)		lpszTmp ="SHMIN5";	else return -1;			wsprintf(fileName, "%s\\%s\\%s.dat", szDataPath, lpszTmp,				HqData[jys].lpRecData[rec_num].zqdm);	hFile =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_READ);	if(hFile ==HFILE_ERROR)	{		ErrMsg(ghWndMain, "open data file failed!");		return -1;	}	if(_lread(hFile, &G5MHead, sizeof(G5MHead)) !=sizeof(G5MHead))	{		ErrMsg(ghWndMain, "read data file failed!");		_lclose(hFile);		return -1;	}	if(G5MHead.dateCount <=0 || G5MHead.dataCount <=0		|| G5MHead.firstDate <day_start	|| G5MHead.firstDate >day_start)			if(min_num >=GMinHead.minCount) min_count =0;	else	{		if(min_num+min_count >GMinHead.minCount)			min_count =GMinHead.minCount-min_num;		if(min_count >MAX_GMIN_SENDCOUNT) min_count =MAX_GMIN_SENDCOUNT;			lpGMinData =(LPGMIN_DATA)malloc(sizeof(GMIN_DATA)*min_count);		if(lpGMinData ==NULL)		{			ErrMsg(ghWndMain, "alloc mem failed!");			_lclose(hFile);			return -1;		}			_llseek(hFile, sizeof(GMIN_HEAD)+sizeof(GMIN_DATA)*min_num, SEEK_SET);		if(_lread(hFile, lpGMinData, sizeof(GMIN_DATA)*min_count)				!=min_count*sizeof(GMIN_DATA))		{			ErrMsg(ghWndMain, "read data file failed!");			_lclose(hFile);			return -1;		}	}	_lclose(hFile);		strcpy(WriteBuf, GMIN01_HEAD); 	len =strlen(GMIN01_HEAD);	if(jys ==0) WriteBuf[len] ='Z';	else WriteBuf[len] ='H';	len++;	*((int *)&WriteBuf[len]) =rec_num;	len +=sizeof(int);	*((int *)&WriteBuf[len]) =min_num;	len +=sizeof(int);	*((int *)&WriteBuf[len]) =min_count;	len +=sizeof(int);		if(lpGMinData)	{		memcpy(&WriteBuf[len], lpGMinData, min_count*sizeof(GMIN_DATA));		len +=min_count*sizeof(GMIN_DATA);		free(lpGMinData);	}			for(i =0; i<10; i++)	{		if(jys ==0)			MsgSend("Send GMIN01_DATA:SZ");		else MsgSend("Send GMIN01_DATA:SH");		j =sendto(sdHq, (LPSTR)WriteBuf, len, 0, lpdest,				sizeof(struct sockaddr));		if (j == SOCKET_ERROR) 		{			if (h_errno == WSAEWOULDBLOCK)				continue;			else				ErrMsg(ghWndMain, GetError("sendto()"));			continue;		}		break;	}	                	return j;}// GMIN10_HEAD, jys, zgjg, zdjg, min_num, min_count, (GMinData)...int UDP_Server_Write_GMin10(int jys, int rec_num, int min_num, struct sockaddr *lpdest){	int i, j, len, min_count;	char fileName[128];	GMIN_HEAD GMinHead;	LPGMIN_DATA lpGMinData =NULL;	HFILE hFile;	OFSTRUCT os;		if(jys > 1) return -1;		if(HqTime[jys].fRunning)	{		wsprintf(fileName, "%s\\%s.dat", GraphData[jys].szGMinDataPath,					HqData[jys].lpRecData[rec_num].zqdm);		hFile =OpenFile(fileName, &os, OF_SHARE_DENY_NONE|OF_READ);		if(hFile ==HFILE_ERROR)		{			ErrMsg(ghWndMain, "open data file failed!");			return -1;		}				if((int)_lread(hFile, &GMinHead, sizeof(GMIN_HEAD)) !=i)		{			ErrMsg(ghWndMain, "read data file failed!");			_lclose(hFile);			return -1;		}		min_count =MAX_GMIN_SENDCOUNT;		if(min_num >=GMinHead.minCount) min_count =0;		else		{			if(min_num+min_count >GMinHead.minCount)				min_count =GMinHead.minCount-min_num;				lpGMinData =(LPGMIN_DATA)malloc(sizeof(GMIN_DATA)*min_count);			if(lpGMinData ==NULL)			{				ErrMsg(ghWndMain, "alloc mem failed!");				_lclose(hFile);				return -1;			}				_llseek(hFile, sizeof(GMIN_HEAD)+sizeof(GMIN_DATA)*min_num, SEEK_SET);			if(_lread(hFile, lpGMinData, sizeof(GMIN_DATA)*min_count)					!=min_count*sizeof(GMIN_DATA))			{				ErrMsg(ghWndMain, "read data file failed!");				_lclose(hFile);				return -1;			}		}		_lclose(hFile);			strcpy(WriteBuf, GMIN10_HEAD); 		len =strlen(GMIN10_HEAD);		if(jys ==0) WriteBuf[len] ='Z';		else WriteBuf[len] ='H';		len++;		*((int *)&WriteBuf[len]) =rec_num;		len +=sizeof(int);		*((int *)&WriteBuf[len]) =min_num;		len +=sizeof(int);		*((int *)&WriteBuf[len]) =min_count;		len +=sizeof(int);		*((float *)&WriteBuf[len]) =(float)GMinHead.zgjg;		len +=sizeof(float);		*((float *)&WriteBuf[len]) =(float)GMinHead.zdjg;		len +=sizeof(float);		*((long *)&WriteBuf[len]) =GMinHead.zglc;		len +=sizeof(long);		//*((long *)&WriteBuf[len]) =GMinHead.zdlc;		//len +=sizeof(long);			if(lpGMinData)		{			memcpy(&WriteBuf[len], lpGMinData, min_count*sizeof(GMIN_DATA));			len +=min_count*sizeof(GMIN_DATA);			free(lpGMinData);		}	}	else	{		strcpy(WriteBuf, NOTRUN_HEAD);		len =strlen(NOTRUN_HEAD);	}	// try 10 times	for(i =0; i<10; i++)	{		if(jys ==0)			MsgSend("Send GMIN10_DATA");		else MsgSend("Send GMIN10_DATA");		j =sendto(sdHq, (LPSTR)WriteBuf, len, 0, lpdest,				sizeof(struct sockaddr));		if (j == SOCKET_ERROR) 		{			if (h_errno == WSAEWOULDBLOCK)				continue;			else				ErrMsg(ghWndMain, GetError("sendto()"));			continue;		}		break;	}		return j;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -