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

📄 cl_data.c

📁 站长96年写的一个Internet上用的股票行情、分析、交易、资讯程序源码
💻 C
📖 第 1 页 / 共 2 页
字号:
BOOL WriteGraData(int jys,int i){ 	char tmp[50];	HFILE hFile;	OFSTRUCT os;	UINT ret;			wsprintf(tmp, "%s\\%s.dat", GraphData[jys].szGraPath,		HqData[jys].lpPreData[i].zqdm);	//GraphData[jys].lpGraHead[i].dateNum =date_num;	//GraphData[jys].lpGraHead.zrsp =HqData[jys].lpRefData[i].zrsp;	//GraphData[jys].lpGraData[i].tim =tim;	hFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE);	if(hFile ==HFILE_ERROR)		return FALSE;	if(_llseek(hFile, sizeof(GRA_HEAD)+(GraphData[jys].lpGraHead[i].recCount-1)*sizeof(GRA_DATA),						SEEK_SET) ==HFILE_ERROR)	{		_lclose(hFile);		return FALSE;	}	ret =_lwrite(hFile, (char *)&GraphData[jys].lpGraData[i],sizeof(GRA_DATA));	_llseek(hFile, 0, SEEK_SET);	ret =_lwrite(hFile, (char *)&GraphData[jys].lpGraHead[i],sizeof(GRA_HEAD));	_lclose(hFile);		return TRUE;}int WriteMinData(int jys){	return 0;}BOOL WriteDayData(int jys){	int i;	long day_cur;	char tmp[128];	DAY_DATA dayData;	HFILE hFile;	OFSTRUCT os;	time_t ltime;	struct tm *ptm;	//static BOOL fWrited[2] ={FALSE, FALSE};	long len;    	if(fWrited[jys])	{		MsgLocal("history data already writed!");		return TRUE;	}		MsgLocal("Write day data...");    	time(&ltime);	ptm =localtime(&ltime);	day_cur =(long)(1900+ptm->tm_year)*10000+(long)(ptm->tm_mon+1)*100+ptm->tm_mday;		for (i=0;i<HqData[jys].recCount;i++) 	{         		while(UDPBlockingHook());		if(run_cancelled) break;				if(GraphData[jys].lpGraHead[i].recCount <=0) continue;				wsprintf(tmp, "%s\\%s\\%s.day", szDataPath, (jys ==0)?"SZDAY":"SHDAY",					HqData[jys].lpPreData[i].zqdm);                          		hFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE);		if(hFile ==HFILE_ERROR)		{			hFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE);			if(hFile ==HFILE_ERROR)			{				ErrMsg(NULL, "Create file failed");				ErrMsg(NULL, tmp);				continue;			}		}		else		{			_llseek(hFile, 0, SEEK_SET);			len =_llseek(hFile, 0, SEEK_END);			if(len!=0)			{				if(_llseek(hFile, len-sizeof(dayData), SEEK_SET) ==HFILE_ERROR)				{					_llseek(hFile, 0, SEEK_SET);				}				else if(_lread(hFile, &dayData, sizeof(dayData))						!=sizeof(dayData))				{					ErrMsg(NULL, "Read file failed");					ErrMsg(NULL, tmp);					_lclose(hFile);					continue;				}				else if(dayData.day ==day_cur)				{					_lclose(hFile);					continue;				}			}		}		dayData.day =day_cur;		dayData.kpjg =HqData[jys].lpPreData[i].jrkp;		dayData.spjg =HqData[jys].lpRefData[i].zjcj;		dayData.zgjg =HqData[jys].lpRefData[i].zgjg;		dayData.zdjg =HqData[jys].lpRefData[i].zdjg;		dayData.cjss =HqData[jys].lpRefData[i].cjss;		dayData.cjje =HqData[jys].lpRefData[i].cjje;				_lwrite(hFile,(char *)&dayData,sizeof(DAY_DATA));					_lclose(hFile);	}    		MsgLocal("Write day data ok");	fWrited[jys] =TRUE;		return TRUE;}BOOL WriteWeekData(int jys){	int i,j;	char tmp[100];	HISTORY_DATA WeekData,DayData,NextDayData;	HFILE hWeekFile,hDayFile;	OFSTRUCT os;	time_t c_time1,c_time2;	static BOOL fWrited[2] ={FALSE, FALSE};    	if(fWrited[jys])	{		MsgLocal("week data already writed");		return TRUE;	}	MsgLocal("Write week data...");	for (i=0;i<HqData[jys].recCount;i++) 	{   		while(UDPBlockingHook());		if(run_cancelled) break;		//打开日线文件		memset(tmp,0,100);                                                              		if(jys==0)			wsprintf(tmp, "%s%s.day","szase\\day\\" ,				HqData[jys].lpPreData[i].zqdm);                          		else			wsprintf(tmp, "%s%s.day","shase\\day\\" ,				HqData[jys].lpPreData[i].zqdm);                          				//MsgLocal(HqData[jys].lpPreData[i].zqdm);      		hDayFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE);		if(hDayFile ==HFILE_ERROR)		{			_lclose(hDayFile);			continue;               		}		_llseek(hDayFile,-1*(long)(sizeof(HISTORY_DATA)),SEEK_END);		if(_lread(hDayFile,&DayData,sizeof(HISTORY_DATA))!=			sizeof(HISTORY_DATA))		{          			_lclose(hDayFile);      		continue;	}        	memcpy(&WeekData,&DayData,sizeof(HISTORY_DATA));        	memcpy(&c_time1,DayData.date+6,sizeof(time_t));			j=2;            		while(TRUE)		{   			if(j>7) break;		    _llseek(hDayFile,-j*(long)(sizeof(HISTORY_DATA)),SEEK_END);			if(_lread(hDayFile,&NextDayData,sizeof(HISTORY_DATA))!=				sizeof(HISTORY_DATA))                           				break;                          			memcpy(&c_time2,NextDayData.date+6,sizeof(time_t));      			if((int)(difftime(c_time1,c_time2)/(24.00*60.00))>=7)				break;			//计算周线  			WeekData.ks=NextDayData.ks;			WeekData.cj+=NextDayData.cj;			if(WeekData.zg<NextDayData.zg)  WeekData.zg=NextDayData.zg;			if(WeekData.zd>NextDayData.zd)  WeekData.zg=NextDayData.zd;                     			j++;    		}               		//写周线文件            		if(jys==0)			wsprintf(tmp, "%s%s.wek","szase\\week\\",				HqData[jys].lpPreData[i].zqdm);		else			wsprintf(tmp, "%s%s.wek","shase\\week\\",				HqData[jys].lpPreData[i].zqdm);		hWeekFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE);		if(hWeekFile ==HFILE_ERROR)		{			hWeekFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE);		}  		_llseek(hWeekFile,0L,SEEK_END);		_lwrite(hWeekFile,(char*)&WeekData,sizeof(HISTORY_DATA));		_lclose(hWeekFile);		_lclose(hDayFile);    }	MsgLocal("Write week data ok");	fWrited[jys] =TRUE;	return TRUE;}BOOL WriteMonthData(int jys){    int i,j;    char tmp[100];    HISTORY_DATA WeekData,MonthData,NextWeekData;	HFILE hWeekFile,hMonthFile;	OFSTRUCT os;	static BOOL fWrited[2] ={FALSE, FALSE};	if(fWrited[jys])	{		MsgLocal("month data already writed!");		return TRUE;	}	MsgLocal("Write month data...");	for (i=0;i<HqData[jys].recCount;i++) 	{   		while(UDPBlockingHook());		if(run_cancelled) break;		//打开周线文件	    if(jys==0)			wsprintf(tmp, "%s%s.wek","szase\\week\\" ,				HqData[jys].lpPreData[i].zqdm);                          		else			wsprintf(tmp, "%s%s.wek","shase\\week\\" ,				HqData[jys].lpPreData[i].zqdm);                          				//MsgLocal(HqData[jys].lpPreData[i].zqdm);      		hWeekFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE);		if(hWeekFile ==HFILE_ERROR)		{			_lclose(hWeekFile);			continue;               		}		_llseek(hWeekFile,-1*(long)(sizeof(HISTORY_DATA)),SEEK_END);		if(_lread(hWeekFile,&WeekData,sizeof(HISTORY_DATA))!=			sizeof(HISTORY_DATA))		{          			_lclose(hWeekFile);     		continue;	}        		memcpy(&MonthData,&WeekData,sizeof(HISTORY_DATA));        			j=2;            		while(TRUE)		{   			if(j>31)        break;		    _llseek(hWeekFile,-j*(long)(sizeof(HISTORY_DATA)),SEEK_END);			if(_lread(hWeekFile,&NextWeekData,sizeof(HISTORY_DATA))!=				sizeof(HISTORY_DATA))                           				break;                  			if(!strncmp(WeekData.date+2,NextWeekData.date+2,2))				break;			//计算月线  			MonthData.ks=NextWeekData.ks;			MonthData.cj+=NextWeekData.cj;			if(MonthData.zg<NextWeekData.zg)  MonthData.zg=NextWeekData.zg;			if(MonthData.zd>NextWeekData.zd)  MonthData.zg=NextWeekData.zd;                 			j++;    		}               		//写月线文件            		if(jys==0)			wsprintf(tmp, "%s%s.mot","szase\\month\\",				HqData[jys].lpPreData[i].zqdm);		else			wsprintf(tmp, "%s%s.mot","shase\\month\\",				HqData[jys].lpPreData[i].zqdm);		hMonthFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_READWRITE);		if(hMonthFile ==HFILE_ERROR)		{			hMonthFile =OpenFile(tmp, &os, OF_SHARE_DENY_NONE|OF_CREATE|OF_READWRITE);		}  		_llseek(hMonthFile,0L,SEEK_END);		_lwrite(hMonthFile,(char*)&MonthData,sizeof(HISTORY_DATA));		_lclose(hMonthFile);		_lclose(hWeekFile);    }	MsgLocal("Write month data ok");	fWrited[jys] =TRUE;	return TRUE;}

⌨️ 快捷键说明

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