亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? qianlong.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

#include "stdafx.h"
#include "Database.h"
#include "SpString.h"
#include "QianLong.h"

//#include	<math.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

BOOL convert_QL_Data_5min_to_KDATA( DWORD dwMarket, const char *szCode, struct QL_Data_5min * pqlkd, KDATA *pkd )
{
	SP_ASSERT( pqlkd && pkd );
	if( NULL == pqlkd || NULL == pkd )
		return FALSE;
	memset( pkd, 0, sizeof(KDATA) );

	pkd->m_dwMarket	= dwMarket;
	if( szCode )
		strncpy( pkd->m_szCode, szCode, min(sizeof(pkd->m_szCode)-1,strlen(szCode)) );

	pkd->m_date		= pqlkd->min_off;
	CSPTime	sptime;
	if( sptime.FromStockTimeMin( pkd->m_date) )
		pkd->m_time	= sptime.GetTime();

	pkd->m_fOpen	= (float)fabs( pqlkd->open_price * 0.001 );
	pkd->m_fHigh	= (float)fabs( pqlkd->high_price * 0.001 );
	pkd->m_fLow		= (float)fabs( pqlkd->low_price * 0.001 );
	pkd->m_fClose	= (float)fabs( pqlkd->close_price * 0.001 );
	pkd->m_fVolume	= (float)fabs( pqlkd->min_volume * 100. );
	pkd->m_fAmount	= (float)fabs( pqlkd->min_amount * 100. );
	return TRUE;
}

BOOL convert_QL_Data_day_to_KDATA( DWORD dwMarket, const char *szCode, struct QL_Data_day * pqlkd, KDATA *pkd )
{
	SP_ASSERT( pqlkd && pkd );
	if( NULL == pqlkd || NULL == pkd )
		return FALSE;
	memset( pkd, 0, sizeof(KDATA) );

	pkd->m_dwMarket	= dwMarket;
	if( szCode )
		strncpy( pkd->m_szCode, szCode, min(sizeof(pkd->m_szCode)-1,strlen(szCode)) );

	pkd->m_date		= pqlkd->day_date;
	CSPTime	sptime;
	if( sptime.FromStockTimeDay(pkd->m_date) )
		pkd->m_time	= sptime.GetTime();

	pkd->m_fOpen	= (float)fabs( pqlkd->open_price * 0.001 );
	pkd->m_fHigh	= (float)fabs( pqlkd->high_price * 0.001 );
	pkd->m_fLow		= (float)fabs( pqlkd->low_price * 0.001 );
	pkd->m_fClose	= (float)fabs( pqlkd->close_price * 0.001 );
	pkd->m_fVolume	= (float)fabs( pqlkd->day_volume * 100. );
	pkd->m_fAmount	= (float)fabs( pqlkd->day_amount * 1000. );
	return TRUE;
}

BOOL convert_KDATA_to_QL_Data_day( KDATA * pkd, struct QL_Data_day * pqlkd )
{
	SP_ASSERT( pqlkd && pkd );
	if( NULL == pqlkd || NULL == pkd )
		return FALSE;
	memset( pqlkd, 0, sizeof(struct QL_Data_day) );

	pqlkd->day_date		= (DWORD)( pkd->m_date );
	pqlkd->open_price	= (DWORD)( pkd->m_fOpen * 1000 );
	pqlkd->high_price	= (DWORD)( pkd->m_fHigh * 1000 );
	pqlkd->low_price	= (DWORD)( pkd->m_fLow * 1000 );
	pqlkd->close_price	= (DWORD)( pkd->m_fClose * 1000 );
	pqlkd->day_volume	= (DWORD)( pkd->m_fVolume * 0.01 );
	pqlkd->day_amount	= (DWORD)( pkd->m_fAmount * 0.001 );
	return TRUE;
}

BOOL convert_KDATA_to_QL_Data_5min( KDATA * pkd, struct QL_Data_5min * pqlkd )
{
	SP_ASSERT( pqlkd && pkd );
	if( NULL == pqlkd || NULL == pkd )
		return FALSE;
	memset( pqlkd, 0, sizeof(struct QL_Data_day) );

	pqlkd->min_off		= (DWORD)( pkd->m_date );
	pqlkd->open_price	= (DWORD)( pkd->m_fOpen * 1000 );
	pqlkd->high_price	= (DWORD)( pkd->m_fHigh * 1000 );
	pqlkd->low_price	= (DWORD)( pkd->m_fLow * 1000 );
	pqlkd->close_price	= (DWORD)( pkd->m_fClose * 1000 );
	pqlkd->min_volume	= (DWORD)( pkd->m_fVolume * 0.01 );
	pqlkd->min_amount	= (DWORD)( pkd->m_fAmount * 0.01 );
	return TRUE;
}

void ConvertQLStockInfo( DWORD dwMarket, QL_Stock_info_V302 & block, CStockInfo *pInfo )
{
	pInfo->Clear();

	char	code[sizeof(block.stock_code)+2];
	memset(code,0,sizeof(code));
	strncpy(code,(const char *)block.stock_code,sizeof(block.stock_code));

	char	name[sizeof(block.stock_name)+2];
	memset(name,0,sizeof(name));
	strncpy(name,(const char *)block.stock_name,sizeof(block.stock_name));

	pInfo->SetStockCode( dwMarket, code );
	pInfo->SetStockName( name );
	pInfo->SetType( block.stock_type );

/*
	pInfo->m_fLast		= (float)fabs( block.last_close_price * 0.001 );
	pInfo->m_fOpen		= (float)fabs( block.open_price * 0.001 );
	pInfo->m_fHigh		= (float)fabs( block.high_price * 0.001 );
	pInfo->m_fLow		= (float)fabs( block.low_price * 0.001 );
	pInfo->m_fClose		= (float)fabs( block.close_price * 0.001 );
	pInfo->m_fVolume	= (float)fabs( block.total_volume * 100. );
	pInfo->m_fAmount	= (float)fabs( block.total_value * 1000. );
	pInfo->m_fBuyPrice[0]	= (float)fabs( block.buy_1_price * 0.001 );
	pInfo->m_fBuyVolume[0]	= (float)fabs( block.buy_1_volume * 100. );
	pInfo->m_fBuyPrice[1]	= (float)fabs( block.buy_2_price * 0.001 );
	pInfo->m_fBuyVolume[1]	= (float)fabs( block.buy_2_volume * 100. );
	pInfo->m_fBuyPrice[2]	= (float)fabs( block.buy_3_price * 0.001 );
	pInfo->m_fBuyVolume[2]	= (float)fabs( block.buy_3_volume * 100. );
	pInfo->m_fSellPrice[0]	= (float)fabs( block.sell_1_price * 0.001 );
	pInfo->m_fSellVolume[0]	= (float)fabs( block.sell_1_volume * 100. );
	pInfo->m_fSellPrice[1]	= (float)fabs( block.sell_2_price * 0.001 );
	pInfo->m_fSellVolume[1]	= (float)fabs( block.sell_2_volume * 100. );
	pInfo->m_fSellPrice[2]	= (float)fabs( block.sell_3_price * 0.001 );
	pInfo->m_fSellVolume[2]	= (float)fabs( block.sell_3_volume * 100. );
*/
}

void ConvertQLStockInfo( DWORD dwMarket, QL_Stock_info2_V304 & block, CStockInfo *pInfo )
{
	pInfo->Clear();

	char	code[sizeof(block.stock_code)+2];
	memset(code,0,sizeof(code));
	strncpy(code,(const char *)block.stock_code,sizeof(block.stock_code));

	char	name[sizeof(block.stock_name)+2];
	memset(name,0,sizeof(name));
	strncpy(name,(const char *)block.stock_name,sizeof(block.stock_name));

	pInfo->SetStockCode( dwMarket, code );
	pInfo->SetStockName( name );
	pInfo->SetType( block.stock_type );

/*
	pInfo->m_fLast		= (float)fabs( block.last_close_price * 0.001 );
	pInfo->m_fOpen		= (float)fabs( block.open_price * 0.001 );
	pInfo->m_fHigh		= (float)fabs( block.high_price * 0.001 );
	pInfo->m_fLow		= (float)fabs( block.low_price * 0.001 );
	pInfo->m_fClose		= (float)fabs( block.close_price * 0.001 );
	pInfo->m_fVolume	= (float)fabs( block.total_volume * 100. );
	pInfo->m_fAmount	= (float)fabs( block.total_value * 1000. );
	pInfo->m_fBuyPrice[0]	= (float)fabs( block.buy_1_price * 0.001 );
	pInfo->m_fBuyVolume[0]	= (float)fabs( block.buy_1_volume * 100. );
	pInfo->m_fBuyPrice[1]	= (float)fabs( block.buy_2_price * 0.001 );
	pInfo->m_fBuyVolume[1]	= (float)fabs( block.buy_2_volume * 100. );
	pInfo->m_fBuyPrice[2]	= (float)fabs( block.buy_3_price * 0.001 );
	pInfo->m_fBuyVolume[2]	= (float)fabs( block.buy_3_volume * 100. );
	pInfo->m_fSellPrice[0]	= (float)fabs( block.sell_1_price * 0.001 );
	pInfo->m_fSellVolume[0]	= (float)fabs( block.sell_1_volume * 100. );
	pInfo->m_fSellPrice[1]	= (float)fabs( block.sell_2_price * 0.001 );
	pInfo->m_fSellVolume[1]	= (float)fabs( block.sell_2_volume * 100. );
	pInfo->m_fSellPrice[2]	= (float)fabs( block.sell_3_price * 0.001 );
	pInfo->m_fSellVolume[2]	= (float)fabs( block.sell_3_volume * 100. );
*/
}

/////////////////////////////////////////////////////////////////////////////////////
// class	CQianlong
/*

struct QL_Info_data datainfo_sha[TYPE_NUM];
struct QL_Info_data datainfo_szn[TYPE_NUM];

unsigned char exepath[80];
unsigned char appdexe[88];

unsigned char ml_sys[80];
unsigned char ml_dat[80];
unsigned char ml_sh_day[80];
unsigned char ml_sz_day[80];
unsigned char ml_sh_min[80];
unsigned char ml_sz_min[80];
unsigned char ml_sh_wek[80];
unsigned char ml_sz_wek[80];
unsigned char ml_sh_mnt[80];
unsigned char ml_sz_mnt[80];

unsigned char sl_sys[80];
unsigned char sl_dat[80];
unsigned char sl_sh_day[80];
unsigned char sl_sz_day[80];
unsigned char sl_sh_min[80];
unsigned char sl_sz_min[80];
unsigned char sl_sh_wek[80];
unsigned char sl_sz_wek[80];
unsigned char sl_sh_mnt[80];
unsigned char sl_sz_mnt[80];

unsigned char hx_sys[80];
unsigned char hx_dat[80];
unsigned char hx_sh_day[80];
unsigned char hx_sz_day[80];
unsigned char hx_sh_min[80];
unsigned char hx_sz_min[80];
unsigned char hx_sh_wek[80];
unsigned char hx_sz_wek[80];
unsigned char hx_sh_mnt[80];
unsigned char hx_sz_mnt[80];

unsigned char dealpath[80];
unsigned char dealdat[80];
unsigned char tmpdir[80];
unsigned char sysdir[80];
unsigned char infdir[80];
unsigned char datdir[80];
unsigned char basdir[80];
unsigned char flag_mlv304;

unsigned long nowdate;
unsigned char datestr[10];
unsigned char flag_dynamic;
unsigned char ml30_flag;
unsigned char slon_flag;
unsigned char hxtw_flag;
*/

char ml_dat[]			= "data\\";
char ml_sh_info[]		= "data\\shinfo.dat";
char ml_sz_info[]		= "data\\szinfo.dat";
char ml_sh_now[]		= "data\\shnow.dat";
char ml_sz_now[]		= "data\\sznow.dat";
char ml_sh_pyjc[]		= "data\\shpyjc.dat";
char ml_sz_pyjc[]		= "data\\szpyjc.dat";
char ml_sh_trace[]		= "data\\shtrace.dat";
char ml_sz_trace[]		= "data\\sztrace.dat";
char ml_sh_minute[]		= "data\\shminute.dat";
char ml_sz_minute[]		= "data\\szminute.dat";

char ml_data[]			= "data\\";
char ml_sh[]			= "data\\sh\\";
char ml_sz[]			= "data\\sz\\";
char ml_base[]			= "bas\\";
char ml_month[]			= "mon\\";
char ml_week[]			= "wek\\";
char ml_day[]			= "day\\";
char ml_min5[]			= "nmn\\";

char ml_sh_base[]		= "data\\sh\\bas\\";
char ml_sz_base[]		= "data\\sz\\bas\\";
char ml_sh_month[]		= "data\\sh\\mon\\";
char ml_sz_month[]		= "data\\sz\\mon\\";
char ml_sh_week[]		= "data\\sh\\wek\\";
char ml_sz_week[]		= "data\\sz\\wek\\";
char ml_sh_day[]		= "data\\sh\\day\\";
char ml_sz_day[]		= "data\\sz\\day\\";
char ml_sh_min[]		= "data\\sh\\nmn\\";
char ml_sz_min[]		= "data\\sz\\nmn\\";

char ml_ext_base[]		= ".txt";
char ml_ext_month[]		= ".mnt";
char ml_ext_week[]		= ".wek";
char ml_ext_day[]		= ".day";
char ml_ext_min5[]		= ".nmn";

CQianlong::CQianlong( const char * rootpath, BOOL bOK )
{
	m_bIsOK	= FALSE;
	memset( m_szRootPath, 0, sizeof(m_szRootPath) );
	if( !bOK )
	{
		if( GetAccurateRoot( rootpath, m_szRootPath, sizeof(m_szRootPath)-1 ) )
			m_bIsOK	= TRUE;
		else
			m_bIsOK	= FALSE;
	}
	else
	{
		strncpy( m_szRootPath, rootpath, sizeof(m_szRootPath)-1 );
		m_bIsOK	= TRUE;
	}

	m_nVersion	= versionUnknown;
	if( bOK )
		m_nVersion	= DetectVersion( GetRootPath() );
}

CQianlong::~CQianlong( )
{
}

int	CQianlong::GetMaxStockNumber( )
{
	SP_ASSERT( m_bIsOK );
	if( ! m_bIsOK )	return 0;

	// load shinfo.dat szinfo.dat

	int	blocksize	= sizeof(struct QL_Stock_info_V302);
	if( version304 == m_nVersion )
		blocksize	= sizeof(struct QL_Stock_info2_V304);

	DWORD	dwCount	= 0;
	CSPString	sFileName	= GetRootPath();
	sFileName	+= ml_sh_now;
	CSPFile	file;
	if( file.Open( sFileName, CSPFile::modeRead | CSPFile::shareDenyNone ) )
	{
		DWORD dwFileLen = file.GetLength();
		dwCount	+= dwFileLen / blocksize;
		file.Close();
	}
	sFileName	= GetRootPath();
	sFileName	+= ml_sz_now;
	if( file.Open( sFileName, CSPFile::modeRead | CSPFile::shareDenyNone ) )
	{
		DWORD dwFileLen = file.GetLength();
		dwCount	+= dwFileLen / blocksize;
		file.Close();
	}
	return	dwCount;
}

int	CQianlong::LoadCodetable( CStockContainer & container )
{
	SP_ASSERT( m_bIsOK );
	if( !m_bIsOK )	return 0;

	int maxsize = GetMaxStockNumber();
	container.SetSize( maxsize );
	CStockInfo * pdata = container.GetData();

	char	szShortName[QL_SHORTNAME_LEN+1];
	memset( szShortName, 0, sizeof(szShortName) );
	int	 nCount	= 0;
	CSPString	sFileName	= GetRootPath();
	sFileName	+= ml_sh_now;
	CSPFile	file;
	if( file.Open( sFileName, CSPFile::modeRead | CSPFile::shareDenyNone ) )
	{
		// pin yin file
		CSPString	sFileNamePyjc	= GetRootPath();
		sFileNamePyjc	+= ml_sh_pyjc;
		CSPFile	filePyjc;
		filePyjc.Open( sFileNamePyjc, CSPFile::modeRead | CSPFile::shareDenyNone );
		
		if( version302 == m_nVersion )
		{
			struct QL_Stock_info_V302	block;
			while( nCount < maxsize 
					&& sizeof(block) == file.Read( &block, sizeof(block) ) )
			{
				pdata[nCount].Clear();
				ConvertQLStockInfo( CStock::marketSHSE, block, &(pdata[nCount]) );

				// read shortname
				if( CSPFile::hFileNull != filePyjc.m_hFile && QL_SHORTNAME_LEN == filePyjc.Read( szShortName, QL_SHORTNAME_LEN ) )
					pdata[nCount].SetStockShortName( szShortName );

				nCount	++;
			}
		}
		else if( version304 == m_nVersion )
		{
			struct QL_Stock_info2_V304	block;
			while( nCount < maxsize 
					&& sizeof(block) == file.Read( &block, sizeof(block) ) )
			{
				pdata[nCount].Clear();
				ConvertQLStockInfo( CStock::marketSHSE, block, &(pdata[nCount]) );

				// read shortname
				if( CSPFile::hFileNull != filePyjc.m_hFile && QL_SHORTNAME_LEN == filePyjc.Read( szShortName, QL_SHORTNAME_LEN ) )
					pdata[nCount].SetStockShortName( szShortName );

				nCount	++;
			}
		}

		if( CSPFile::hFileNull != filePyjc.m_hFile )
			filePyjc.Close();
		file.Close();
	}

	sFileName	= GetRootPath();
	sFileName	+= ml_sz_now;
	if( file.Open( sFileName, CSPFile::modeRead | CSPFile::shareDenyNone ) )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合在线免费观看| 欧美日韩成人综合| 奇米色777欧美一区二区| 免费的成人av| 日本最新不卡在线| 青青草91视频| 日日骚欧美日韩| 三级在线观看一区二区| 蜜臀av亚洲一区中文字幕| 亚洲成在人线免费| 日韩影视精彩在线| 日本不卡123| 亚洲国产一区二区三区| 一区二区三区精密机械公司| 日韩精品专区在线影院重磅| 色婷婷国产精品综合在线观看| 国产91综合一区在线观看| 国产伦精一区二区三区| 粉嫩av一区二区三区| 不卡的电视剧免费网站有什么| a4yy欧美一区二区三区| 色哟哟在线观看一区二区三区| 欧美日韩在线三级| 欧美一区二区三区四区五区| 欧美mv日韩mv国产网站app| 精品久久久网站| 国产精品久久久久久亚洲伦 | 久久免费电影网| 国产精品三级av| 亚洲综合在线第一页| 久久精品国产免费看久久精品| 国产曰批免费观看久久久| 99re热这里只有精品免费视频| 91精品在线麻豆| 中文一区一区三区高中清不卡| 亚洲乱码国产乱码精品精98午夜 | 在线免费不卡电影| 久久久久久久久久电影| 国产精品热久久久久夜色精品三区 | 91视频在线观看免费| 欧美三区在线观看| 日韩三级精品电影久久久| 亚洲国产精品自拍| 久久国产精品99久久人人澡| 久久99热这里只有精品| 不卡高清视频专区| 欧美成人伊人久久综合网| 亚洲一区二区美女| 99麻豆久久久国产精品免费| 国产亚洲欧洲一区高清在线观看| 亚洲三级电影网站| 91视频.com| 日韩久久久精品| 免费成人小视频| 26uuu国产日韩综合| 午夜精品久久久久久久久| 韩国女主播一区二区三区| 日韩精品中文字幕在线不卡尤物 | 日韩成人一级片| 一级做a爱片久久| 色菇凉天天综合网| 伊人色综合久久天天| 在线中文字幕一区| 婷婷成人激情在线网| 69堂国产成人免费视频| 国产精品伊人色| 国产精品国产馆在线真实露脸| 日本黄色一区二区| 久久av老司机精品网站导航| 亚洲色图一区二区三区| 欧美日本在线观看| 国产一区免费电影| 一区二区三区.www| 精品第一国产综合精品aⅴ| 91看片淫黄大片一级在线观看| 香蕉久久夜色精品国产使用方法| 亚洲人123区| xnxx国产精品| 欧美午夜精品久久久久久超碰| 国产·精品毛片| 日本最新不卡在线| 亚洲成人1区2区| 亚洲精品久久久蜜桃| 国产色一区二区| 久久久久久久久伊人| 欧美日韩美女一区二区| 91国产视频在线观看| 粉嫩久久99精品久久久久久夜| 天堂在线亚洲视频| 亚洲综合成人在线| 亚洲欧美偷拍三级| 一区二区三区四区不卡视频| 久久综合久久综合九色| 这里是久久伊人| 亚洲精品中文在线观看| 国产一区91精品张津瑜| 色哟哟国产精品免费观看| 337p日本欧洲亚洲大胆精品 | 国产精品一卡二| 69堂成人精品免费视频| 一区二区三区在线高清| 国产福利精品一区二区| 欧美一级片在线看| 国产亚洲成年网址在线观看| 欧美日韩国产综合一区二区三区| 色综合久久久网| 欧美日韩在线直播| 亚洲国产成人午夜在线一区| 亚洲午夜视频在线观看| 国产福利一区在线| 欧美性淫爽ww久久久久无| 精品久久久久久综合日本欧美| 国产精品黄色在线观看| 日本特黄久久久高潮| gogo大胆日本视频一区| 日韩欧美亚洲一区二区| 亚洲日本电影在线| 国产美女在线精品| 欧美不卡视频一区| 亚洲国产日日夜夜| 91麻豆高清视频| 亚洲国产精华液网站w| 国产精品中文字幕欧美| xfplay精品久久| 国产精品一品二品| 久久久三级国产网站| 极品销魂美女一区二区三区| 制服.丝袜.亚洲.另类.中文| 性做久久久久久久免费看| aaa国产一区| 亚洲日本一区二区| 成人激情小说乱人伦| 亚洲综合久久久久| 日本美女一区二区三区| 成人免费视频免费观看| av不卡免费电影| 色综合天天性综合| 色欧美日韩亚洲| av激情综合网| 国产丝袜欧美中文另类| 午夜国产不卡在线观看视频| 国产成人av自拍| 国产午夜亚洲精品理论片色戒| 精品一区二区三区视频| www国产精品av| 成人在线一区二区三区| 国产精品美女视频| 欧亚洲嫩模精品一区三区| 亚洲国产精品久久人人爱| 91精品国产91久久久久久一区二区| 免费观看在线综合| 国产精品乱码一区二三区小蝌蚪| 色94色欧美sute亚洲线路一久| 日韩高清在线一区| 国产女人18毛片水真多成人如厕 | 精品婷婷伊人一区三区三| 亚洲国产视频一区二区| 久久久国产精华| 欧美日韩在线三级| 成人av电影在线| 久久超级碰视频| 一区二区三区丝袜| 亚洲视频一二三区| 久久青草欧美一区二区三区| 欧美在线视频你懂得| 丰满亚洲少妇av| 久久国产精品无码网站| 五月婷婷综合网| 亚洲女人的天堂| 亚洲婷婷国产精品电影人久久| 精品久久一区二区| 日韩女优av电影| 欧美一级免费观看| 正在播放亚洲一区| 在线播放国产精品二区一二区四区 | 国产乱子伦视频一区二区三区| 性感美女极品91精品| 亚洲bt欧美bt精品| 日韩国产在线观看一区| 亚洲国产美女搞黄色| 亚洲精品国产第一综合99久久| 又紧又大又爽精品一区二区| 一区二区三国产精华液| 一区二区理论电影在线观看| 亚洲国产精品v| 国产精品青草久久| 亚洲人成网站色在线观看| 亚洲区小说区图片区qvod| 亚洲女人的天堂| 免费一级欧美片在线观看| 欧美aⅴ一区二区三区视频| 国产揄拍国内精品对白| 国产999精品久久久久久| 99亚偷拍自图区亚洲| 欧美日韩一区二区欧美激情| 777午夜精品视频在线播放| 国产精品成人网| 亚洲高清免费一级二级三级| 国产综合久久久久久久久久久久| 不卡av免费在线观看|