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

📄 cl_data.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <windows.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <io.h>#include "dbf_data.h"#include "hq.h"#include "sv_hq.h"#include "data.h"#include "cl_hq.h"#include "cl_data.h"extern BOOL run_cancelled;extern HWND ghWndMain;extern int date_num, tim;extern void MsgLocal(LPSTR msg);extern BOOL ErrMsg(HWND, LPSTR);extern int UDPBlockingHook(void);extern void MsgRecv(char far *msg);//extern long oldCjss[2];extern char szDataPath[128];long zs_times[2][20];BOOL fWrited[2] ={FALSE, FALSE};int WriteHqAll(int jys){	if(WriteHqData(jys) <0) return -1;	if(WriteMmpData(jys) <0) return -1;	if(WriteMaxMinData(jys) <0) return -1;		return 0;}int WriteHqData(int jys){	_llseek(hfHq[jys], 0, SEEK_SET);	_lwrite(hfHq[jys], (char *)&HqData[jys].recCount, sizeof(short));	if(_hwrite(hfHq[jys], (char *)HqData[jys].lpPreData,			(long)HqData[jys].recCount*sizeof(HQ_PRE_DATA))		!=(long)(HqData[jys].recCount*sizeof(HQ_PRE_DATA)))	{		ErrMsg(ghWndMain, "Error write hqdata");		return -1;	}		if(_hwrite(hfHq[jys], (char *)HqData[jys].lpRefData,			(long)HqData[jys].recCount*sizeof(HQ_REF_DATA))		!=(long)(HqData[jys].recCount*sizeof(HQ_REF_DATA)))	{		ErrMsg(ghWndMain, "Error write hqdata");		return -1;	}		CreateLzwFile(jys);		return 0;}////////////////////////////////////////////////////////////////////////////Function:to reduce transfer time between server and client,we must build//         compress data.this prog compress main mass data(szhq.dat.shhq.dat)//Para    :None//Return  :if successful return 0,otherwise return -1//Writer  :lym//Create  :1997/08/24//////////////////////////////////////////////////////////////////////////int CreateLzwFile(int jys){	char temp[256]; //,tmp[256];    OFSTRUCT os;                     HQ_REF_DATA_V202  DataV202;    long i;    int lzw;        //for(jys=0;jys<2;jys++)    //{   		if(HqData[jys].recCount==0)			return(-1);		if(jys==0)			sprintf(temp,"%s\\hqdata\\szhq.202",szDataPath);		else			sprintf(temp,"%s\\hqdata\\shhq.202",szDataPath);		if((lzw=OpenFile(temp,&os,OF_WRITE|OF_SHARE_DENY_NONE))==HFILE_ERROR)			if((lzw=OpenFile(temp,&os,OF_WRITE|OF_SHARE_DENY_NONE|OF_CREATE))==HFILE_ERROR)				return(-1);					_lwrite(lzw, (char *)&HqData[jys].recCount, sizeof(short));		for(i=0;i<HqData[jys].recCount;i++)		{				if(run_cancelled) break;				memset((char*)&DataV202,0,sizeof(HQ_REF_DATA_V202));	 	 		strcpy(DataV202.zqdm,HqData[jys].lpPreData[i].zqdm);	 		strcpy(DataV202.zqmc,HqData[jys].lpPreData[i].zqmc);                	sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zdjg*100.00);	 		DataV202.zdjg =atol(temp);	 		 		sprintf(temp,"%7.2f",HqData[jys].lpPreData[i].zrsp*100.00);	 		DataV202.zrsp =atol(temp)-DataV202.zdjg;	 		 		sprintf(temp,"%7.2f",HqData[jys].lpPreData[i].jrkp*100.00);	 		DataV202.jrkp =atol(temp)-DataV202.zdjg;	 		 		sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zgjg*100.00);	 		DataV202.zgjg =atol(temp)-DataV202.zdjg;	 		 		sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zdjm*100.00);	 		DataV202.zdjm =atol(temp)-DataV202.zdjg;	 		 		sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zgjm*100.00);	 		DataV202.zgjm =atol(temp)-DataV202.zdjg;	 		 		sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zjcj*100.00);	 		DataV202.zjjg =atol(temp)-DataV202.zdjg;	 		 		sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].wb*100.00);	 		DataV202.wb =atol(temp);	 		 		DataV202.cjss =HqData[jys].lpRefData[i].cjss;	 		DataV202.npzl =HqData[jys].lpRefData[i].npzl;	 		DataV202.cjje =HqData[jys].lpRefData[i].cjje;			_lwrite(lzw,(char *)&DataV202,sizeof(HQ_REF_DATA_V202));		}		_lclose(lzw);			return TRUE;	}int CreateLzwMemData(int jys){	char temp[256];    long i;    	if(HqData[jys].recCount==0)		return(-1);				*LzwData202[jys].recCount =HqData[jys].recCount;	for(i=0;i<HqData[jys].recCount;i++)	{			if(run_cancelled) break;		 	strcpy(LzwData202[jys].lpData202[i].zqdm,				HqData[jys].lpPreData[i].zqdm);	 	strcpy(LzwData202[jys].lpData202[i].zqmc,				HqData[jys].lpPreData[i].zqmc);                sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zdjg*100.00);	 	LzwData202[jys].lpData202[i].zdjg =atol(temp);	 		 	sprintf(temp,"%7.2f",HqData[jys].lpPreData[i].zrsp*100.00);	 	LzwData202[jys].lpData202[i].zrsp =				atol(temp)-LzwData202[jys].lpData202[i].zdjg;	 		 	sprintf(temp,"%7.2f",HqData[jys].lpPreData[i].jrkp*100.00);	 	LzwData202[jys].lpData202[i].jrkp =atol(temp)-LzwData202[jys].lpData202[i].zdjg;	 		 	sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zgjg*100.00);	 	LzwData202[jys].lpData202[i].zgjg =atol(temp)-LzwData202[jys].lpData202[i].zdjg;	 		 	sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zdjm*100.00);	 	LzwData202[jys].lpData202[i].zdjm =atol(temp)-LzwData202[jys].lpData202[i].zdjg;	 		 	sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zgjm*100.00);	 	LzwData202[jys].lpData202[i].zgjm =atol(temp)-LzwData202[jys].lpData202[i].zdjg;	 		 	sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].zjcj*100.00);	 	LzwData202[jys].lpData202[i].zjjg =atol(temp)-LzwData202[jys].lpData202[i].zdjg;	 		 	sprintf(temp,"%7.2f",HqData[jys].lpRefData[i].wb*100.00);	 	LzwData202[jys].lpData202[i].wb =atol(temp);	 		 	LzwData202[jys].lpData202[i].cjss =HqData[jys].lpRefData[i].cjss;	 	LzwData202[jys].lpData202[i].npzl =HqData[jys].lpRefData[i].npzl;	 	LzwData202[jys].lpData202[i].cjje =HqData[jys].lpRefData[i].cjje;	}	return TRUE;	}int WriteDpData(int jys){	_llseek(hfDp, jys*sizeof(DpData[jys]), SEEK_SET);	_lwrite(hfDp, (char*)&DpData[jys], sizeof(DpData[jys]));		return 0;}int WriteMmpData(int jys){	_llseek(hfMmp[jys], 0, SEEK_SET);	if(_hwrite(hfMmp[jys], (char *)MmpData[jys].lpMmp, (long)sizeof(MMP)*HqData[jys].recCount)			!=(long)sizeof(MMP)*HqData[jys].recCount)	{		ErrMsg(NULL, "Write mmp failed");		return -1;	}		return 0;}int WriteMaxMinData(int jys){	_llseek(hfMaxMin[jys], 0, SEEK_SET);	_lwrite(hfMaxMin[jys], (char *)&MaxMinData[jys], sizeof(MAXMIN_DATA)*2);		return 0;}long max_l(long val1, long val2){	return (val1>val2)? val1:val2;}long min_l(long val1, long val2){	return (val1<val2)? val1:val2;}float max_f(float val1, float val2){	return (val1>val2)? val1:val2;}float min_f(float val1, float val2){	return (val1<val2)? val1:val2;}////////////////////////////////////////////////////功能		:读取分时数据文件,初始化内存分时数据头部信息//参数		://		   jys---交易所编码//返回码	://		   0  ---成功//         -1 ---失败//修改日期	:1997/10/15	  int CheckGraHead(int jys){	int i;	char temp[128];	HFILE hFile;	OFSTRUCT os;	wsprintf(temp, "检查分时数据头:%d", jys);	MsgLocal(temp);	for(i =0; i<HqData[jys].recCount; i++)	{		while(UDPBlockingHook());		if(run_cancelled) break;				wsprintf(temp, "%s\\%s.dat",			GraphData[jys].szGraPath,			HqData[jys].lpPreData[i].zqdm);		hFile =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_READ);		//打开文件失败,必需重新初始化内存分时数据头部信息		if(hFile ==HFILE_ERROR)			goto reset_values;		else		{			//该内存分时数据头部信息读不出,必需重新初始化			if(_lread(hFile, &GraphData[jys].lpGraHead[i],					sizeof(GRA_HEAD)) !=sizeof(GRA_HEAD))				goto reset_values;			//该内存分时数据头部信息日期错,必需重新初始化			if(GraphData[jys].lpGraHead[i].dateNum !=date_num)				goto reset_values;			_lclose(hFile);			//至此说明该内存分时数据头部信息正确,但如存在成交量查,则必须调整			//内存行情数据的内盘总量			HqData[jys].lpRefData[i].npzl =GraphData[jys].lpGraHead[i].npzl					+(HqData[jys].lpRefData[i].cjss-GraphData[jys].lpGraHead[i].npzl						-GraphData[jys].lpGraHead[i].wpzl)/2;			continue;		}		reset_values:		HqData[jys].lpRefData[i].npzl =HqData[jys].lpRefData[i].cjss/2;		memset(&GraphData[jys].lpGraHead[i], 0, sizeof(GRA_HEAD));		GraphData[jys].lpGraHead[i].dateNum =date_num;		GraphData[jys].lpGraHead[i].zrsp =HqData[jys].lpPreData[i].zrsp;		GraphData[jys].lpGraHead[i].zgjg =GraphData[jys].lpGraHead[i].zdjg				=HqData[jys].lpRefData[i].zjcj-HqData[jys].lpPreData[i].zrsp;		if(hFile ==HFILE_ERROR)		{			hFile =OpenFile(temp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE);			if(hFile ==HFILE_ERROR) continue;		}		_lclose(hFile);	}	return 0;}

⌨️ 快捷键说明

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