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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? container.cpp

?? 股票軟件
?? CPP
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
			}
		}

		if( -1 == nMinMaxIndex )
			break;
		adwSortID.Add( nMinMaxIndex );
	}

	return TRUE;
}

BOOL CStockContainer::GetVariantSaveValue( double *pValue, UINT nVariantID, CStockInfo &info, BOOL *pNoValue )
{
	CSPMutex::Scoped	l(m_mutex);

	void * pArrayID	=	NULL;
	if( !m_map.Lookup( info.GetStockCode(), pArrayID ) )
		return FALSE;

	int	nIndex	=	(int)pArrayID;
	if( nIndex >= 0 && nIndex < m_aptrSaveValueArray.GetSize() )
	{
		CSPPtrArray * pArray = (CSPPtrArray *)m_aptrSaveValueArray.ElementAt( nIndex );
		if( pArray )
		{
			VARIANT_SAVEVALUE * pSave = NULL;
			for( int j=0; j<pArray->GetSize(); j++ )
			{
				pSave = (VARIANT_SAVEVALUE *) pArray->GetAt(j);
				if( pSave->nVariantID == nVariantID )
				{
					if( pValue )	*pValue		=	pSave->Value;
					if( pNoValue )	*pNoValue	=	pSave->bNoValue;
					return TRUE;
				}
			}
		}
	}
	
	return FALSE;
}

void CStockContainer::SetVariantSaveValue( double Value, UINT nVariantID, CStockInfo &info, BOOL bNoValue )
{
	CSPMutex::Scoped	l(m_mutex);

	void * pArrayID	=	NULL;
	if( !m_map.Lookup( info.GetStockCode(), pArrayID ) )
		return;

	// alloc for m_aptrSaveValueArray
	if( m_aptrSaveValueArray.GetSize() == 0 )
	{
		m_aptrSaveValueArray.SetSize( GetSize() );
		for( int i=0; i<m_aptrSaveValueArray.GetSize(); i++ )
			m_aptrSaveValueArray.SetAt( i, NULL );
	}

	int	nIndex	=	(int)pArrayID;
	if( nIndex >= 0 && nIndex < m_aptrSaveValueArray.GetSize() )
	{
		CSPPtrArray * pArray = (CSPPtrArray *)m_aptrSaveValueArray.ElementAt( nIndex );
		if( NULL == pArray )
		{
			pArray	=	new	CSPPtrArray;
			m_aptrSaveValueArray.SetAt( nIndex, pArray );
		}
		
		// 如果已經(jīng)存在,覆蓋之
		for( int j=0; j<pArray->GetSize(); j++ )
		{
			VARIANT_SAVEVALUE * pSave = (VARIANT_SAVEVALUE *) pArray->GetAt(j);
			if( pSave->nVariantID == nVariantID )
			{
				pSave->Value	=	Value;
				pSave->bNoValue	=	bNoValue;
				return;
			}
		}
		
		// 加入新的
		VARIANT_SAVEVALUE * pSaveValue = new VARIANT_SAVEVALUE;
		pSaveValue->nVariantID	=	nVariantID;
		pSaveValue->Value		=	Value;
		pSaveValue->bNoValue	=	bNoValue;
		pArray->Add( pSaveValue );
	}
}

void CStockContainer::ClearVariantSaveValue( )
{
	CSPMutex::Scoped	l(m_mutex);

	for( int i=0; i<m_aptrSaveValueArray.GetSize(); i++ )
	{
		CSPPtrArray * pArray = (CSPPtrArray *)m_aptrSaveValueArray.ElementAt( i );
		if( pArray )
		{
			for( int j=0; j<pArray->GetSize(); j++ )
				delete	pArray->GetAt(j);
			delete	pArray;
		}
	}
	m_aptrSaveValueArray.RemoveAll();
}

//////////////////////////////////////////////////////////////////////
// class CDomain

CDomain::CDomain( )
{
}

CDomain::CDomain( const CDomain &src )
{
	*this	=	src;
}

CDomain::~CDomain( )
{
}

BOOL CDomain::AddStock( LPCTSTR lpszStockCode )
{
	if( NULL == lpszStockCode || strlen(lpszStockCode) <= 0 )
		return FALSE;

	for( int k=0; k<GetSize(); k++ )
	{
		int nCmp = ElementAt(k).CompareNoCase(lpszStockCode);
		if( 0 == nCmp )
			return FALSE;
	}

	Add( lpszStockCode );
	return TRUE;
}

BOOL CDomain::AddStockSort( LPCTSTR lpszStockCode )
{
	if( NULL == lpszStockCode || strlen(lpszStockCode) <= 0 )
		return FALSE;

	for( int k=0; k<GetSize(); k++ )
	{
		int nCmp = ElementAt(k).CompareNoCase(lpszStockCode);
		if( 0 == nCmp )
			return FALSE;
		if( nCmp > 0 )
		{
			InsertAt(k, lpszStockCode );
			return TRUE;
		}
	}

	Add( lpszStockCode );
	return TRUE;
}

BOOL CDomain::RemoveStock( LPCTSTR lpszStockCode )
{
	if( NULL == lpszStockCode || strlen(lpszStockCode) <= 0 )
		return FALSE;

	for( int k=0; k<GetSize(); k++ )
	{
		if( 0 == ElementAt(k).CompareNoCase(lpszStockCode) )
		{
			RemoveAt(k);
			return TRUE;
		}
	}
	return FALSE;
}

CDomain &CDomain::operator = ( const CDomain &src )
{
	m_strName		=	src.m_strName;
	Copy( src );
	return *this;
}

struct fxj_block_t {
	WORD	wMarket;
	char	szCode[10];
};

int CDomain::AddFxjDomain( LPCTSTR lpszFile )
{
	CSPFile file;
	DWORD	dwMagic;
	if( !file.Open( lpszFile, CSPFile::modeRead )
		|| sizeof(dwMagic) != file.Read(&dwMagic,sizeof(dwMagic)) || dwMagic != 0xFF5100A5 )
		return 0;

	int nCount = 0;
	struct fxj_block_t stock;
	while( sizeof(stock) == file.Read(&stock,sizeof(stock)) )
	{
		if( 0 == stock.szCode[6] )
		{
			CSPString sCode = stock.szCode;
			if( sCode.GetLength() == 4 )
				sCode = "00" + sCode;
			if( sCode.GetLength() == 6 )
				AddStock( sCode );
		}
	}
	
	return GetSize();
}


//////////////////////////////////////////////////////////////////////
// class CDomainContainer

CDomainContainer::CDomainContainer( )
{
}

CDomainContainer::CDomainContainer( CDomainContainer & src )
{
	*this	=	src;
}

CDomainContainer::~CDomainContainer( )
{
	RemoveAll( );
}

CDomainContainer & CDomainContainer::operator = ( CDomainContainer & src )
{
	SetSize( src.GetSize() );
	for( int i=0; i<src.GetSize(); i++ )
	{
		CDomain domain = src.ElementAt(i);
		SetAt( i, domain );
	}
	return *this;
}

int CDomainContainer::AddDomain( LPCTSTR lpszDomainName )
{
	if( NULL == lpszDomainName || strlen(lpszDomainName) <=0  )
		return -1;
	CDomain	newdomain;
	newdomain.m_strName	=	lpszDomainName;
	return AddDomain( newdomain );
}

int CDomainContainer::AddDomain( CDomain & newdomain )
{
	if( 0 == newdomain.m_strName.GetLength() )
		return -1;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain & domain = ElementAt(i);
		if( 0 == newdomain.m_strName.CompareNoCase( domain.m_strName ) )
			return -1;
	}
	return Add( newdomain );
}

int CDomainContainer::AddDomainReplace( CDomain & newdomain )
{
	if( 0 == newdomain.m_strName.GetLength() )
		return -1;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain & domain = ElementAt(i);
		if( 0 == newdomain.m_strName.CompareNoCase( domain.m_strName ) )
		{
			SetAt( i, newdomain );
			return i;
		}
	}
	return Add( newdomain );
}

int CDomainContainer::AddDomainReplace( CDomainContainer & newdomains )
{
	int nCount = 0;
	for( int i=0; i<newdomains.GetSize(); i++ )
	{
		if( AddDomainReplace( newdomains.ElementAt(i) ) >= 0 )
			nCount ++;
	}
	return nCount;
}

BOOL CDomainContainer::RemoveDomain( LPCTSTR lpszDomainName )
{
	if( NULL == lpszDomainName || strlen(lpszDomainName) <= 0 )
		return FALSE;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain & domain = ElementAt(i);
		if( 0 == domain.m_strName.CompareNoCase( lpszDomainName ) )
		{
			RemoveAt( i );
			return TRUE;
		}
	}
	
	return FALSE;
}

BOOL CDomainContainer::AddDomainStock( LPCTSTR lpszDomainName, LPCTSTR lpszStockCode )
{
	if( NULL == lpszDomainName || strlen(lpszDomainName) < 0
		|| NULL == lpszStockCode || strlen(lpszStockCode) < 0 )
		return FALSE;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain	& domain	=	ElementAt(i);
		if( 0 == domain.m_strName.CompareNoCase( lpszDomainName ) )
		{
			return domain.AddStock( lpszStockCode );
		}
	}

	return FALSE;
}

BOOL CDomainContainer::AddDomainStock( LPCTSTR lpszDomainName, CSPStringArray & astr )
{
	if( NULL == lpszDomainName || strlen(lpszDomainName) < 0 )
		return FALSE;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain	& domain	=	ElementAt(i);
		if( 0 == domain.m_strName.CompareNoCase( lpszDomainName ) )
		{
			for( int j=0; j<astr.GetSize(); j++ )
				domain.AddStock( astr.ElementAt(j) );
			return TRUE;
		}
	}

	return FALSE;
}

BOOL CDomainContainer::RemoveDomainStock( LPCTSTR lpszDomainName, LPCTSTR lpszStockCode )
{
	if( NULL == lpszDomainName || strlen(lpszDomainName) < 0
		|| NULL == lpszStockCode || strlen(lpszStockCode) < 0 )
		return FALSE;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain	& domain	=	ElementAt(i);
		if( 0 == domain.m_strName.CompareNoCase( lpszDomainName ) )
		{
			for( int k=0; k<domain.GetSize(); k++ )
			{
				if( 0 == domain.ElementAt(k).CompareNoCase(lpszStockCode) )
				{
					domain.RemoveAt(k);
					return TRUE;
				}
			}
			break;
		}
	}

	return FALSE;
}

BOOL CDomainContainer::RemoveDomainStockAll( LPCTSTR lpszDomainName )
{
	if( NULL == lpszDomainName || strlen(lpszDomainName) < 0 )
		return FALSE;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain	& domain	=	ElementAt(i);
		if( 0 == domain.m_strName.CompareNoCase( lpszDomainName ) )
		{
			domain.RemoveAll();
			return TRUE;
		}
	}

	return FALSE;
}

BOOL CDomainContainer::GetDomainStocks( LPCTSTR lpszDomain, CSPStringArray &astr )
{
	if( NULL == lpszDomain || strlen(lpszDomain) < 0 )
		return FALSE;

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain	& domain	=	ElementAt(i);
		if( 0 == domain.m_strName.CompareNoCase( lpszDomain ) )
		{
			astr.Copy( domain );
			return TRUE;
		}
	}

	return FALSE;
}

BOOL CDomainContainer::GetDomains( CSPStringArray & astr )
{
	astr.SetSize( GetSize() );

	for( int i=0; i<GetSize(); i++ )
	{
		CDomain	& domain	=	ElementAt(i);
		CSPString	string	=	domain.m_strName;
		astr.SetAt( i, string );
	}
	return TRUE;
}

BOOL CDomainContainer::GetAllDomainInfo( CStockContainer * pContainer, DWORD dwDate )
{
	SP_ASSERT( pContainer );
	if( NULL == pContainer )
		return FALSE;

	DWORD	dwDateLatest = -1;
	AfxGetStockContainer().GetLatestTechDate( &dwDateLatest );

	for( int nDomain=0; nDomain<GetSize(); nDomain++ )
	{
		CDomain	&	domain	=	ElementAt(nDomain);
		CStockContainer	cntn;
		if( cntn.RetrieveSpecify( domain ) )
		{
			if( -1 != dwDate && dwDateLatest != dwDate )
			{
				for( int i=0; i<cntn.GetSize(); i++ )
				{
					CStockInfo	& info	=	cntn.ElementAt(i);
					info.StatBaseIndex( dwDate );
					info.StatTechIndex( dwDate );
				}
			}
			// cntn.SetMap( );
			cntn.SetAverage( );

			CStockInfo	info	=	cntn.GetAverage( );
			info.SetStockName( domain.m_strName );
			info.SetStockShortName( domain.m_strName );
			pContainer->Add( info );
		}
	}
	pContainer->SetMap();
	pContainer->SetAverage();
	return TRUE;
}

#define	SF_MAX_DOMAINFILE_LENGTH	0x10000000

BOOL CDomainContainer::Load( LPCTSTR lpszFileName )
{
	if( NULL == lpszFileName || strlen(lpszFileName) <= 0 )
		return FALSE;

	BOOL	bOK	=	FALSE;
	CSPFile file;
	
	if( file.Open( lpszFileName, CSPFile::modeRead ) )
	{
		DWORD dwLen = file.GetLength();
		if( 0 == dwLen || dwLen > SF_MAX_DOMAINFILE_LENGTH )
		{
			file.Close();
			return FALSE;
		}

		SetSize( 0, min(dwLen / 300, 20) );

		CDomain	domain;
		CSPString	rString;
		while( file.ReadString( rString ) )
		{
			int	nIndex	=	rString.Find( "\r" );
			if( -1 == nIndex )
				nIndex	=	rString.Find( "\n" );
			if( -1 != nIndex )
				rString	=	rString.Left( nIndex );
			rString.TrimLeft();
			rString.TrimRight();

			if( rString.GetLength() > 0 )
			{
				if( domain.m_strName.IsEmpty() )	// 新版塊名稱(chēng)
					domain.m_strName	=	rString;
				else
					domain.AddStock( rString );
			}
			else
			{	// 版塊結(jié)束
				if( !domain.m_strName.IsEmpty() )
					AddDomain( domain );
				domain.m_strName.Empty();
				domain.RemoveAll();
			}
		}
		if( !domain.m_strName.IsEmpty() )
			Add( domain );
		domain.m_strName.Empty();
		domain.RemoveAll();

		file.Close();
		bOK	=	TRUE;
	}

	return bOK;
}

BOOL CDomainContainer::Store( LPCTSTR lpszFileName )
{
	if( NULL == lpszFileName || strlen(lpszFileName) <= 0 )
		return FALSE;

	CSPFile file;
	if( file.Open( lpszFileName, CSPFile::modeCreate | CSPFile::modeWrite ) )
	{
		for( int i=0; i<GetSize(); i++ )
		{
			CDomain	& domain = ElementAt(i);
			CSPString	strDomain	=	domain.m_strName;
			file.Write( strDomain.GetBuffer(strDomain.GetLength()+1), strDomain.GetLength() );
			file.Write( STRING_CRLF, strlen(STRING_CRLF) );
			for( int k=0; k<domain.GetSize(); k++ )
			{
				CSPString	strStock	=	domain[k];
				if( strStock.GetLength() > 0 )
				{
					file.Write( strStock.GetBuffer(strStock.GetLength()), strStock.GetLength() );
					file.Write( STRING_CRLF, strlen(STRING_CRLF) );
				}
			}
			file.Write( STRING_CRLF, strlen(STRING_CRLF) );
		}
		
		file.Close();
		return TRUE;
	}
	return FALSE;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久影院| 在线观看av不卡| 色综合久久中文字幕综合网 | 欧美一区二区三区免费在线看| 欧美肥妇bbw| 久久久午夜精品| 一区二区三区在线免费观看| 蜜芽一区二区三区| 99免费精品在线观看| 欧美日韩免费一区二区三区视频| 精品免费日韩av| 中文字幕中文乱码欧美一区二区 | 欧美男男青年gay1069videost | 丰满亚洲少妇av| 欧美午夜精品一区二区蜜桃| 欧美成va人片在线观看| 中文字幕一区二区三区在线播放| 日韩一区精品字幕| 成人激情图片网| 欧美精品自拍偷拍| 国产精品灌醉下药二区| 午夜欧美一区二区三区在线播放| 国产成人午夜精品影院观看视频| 欧美在线观看视频一区二区| 国产欧美日韩不卡免费| 日韩av一级电影| 在线免费观看一区| 国产日韩欧美亚洲| 免费人成黄页网站在线一区二区| 97精品国产露脸对白| 久久亚洲综合色一区二区三区| 亚洲精品免费电影| 成人午夜私人影院| 日韩一区二区高清| 亚洲一本大道在线| 波多野结衣91| wwwwxxxxx欧美| 午夜欧美大尺度福利影院在线看| 99国内精品久久| 日本一区二区三区视频视频| 秋霞午夜鲁丝一区二区老狼| 欧美优质美女网站| 国产精品福利一区| 国产伦精品一区二区三区视频青涩 | 欧美年轻男男videosbes| **性色生活片久久毛片| 国产成人免费xxxxxxxx| 日韩一区二区三区在线| 亚洲高清免费观看| 99re热这里只有精品免费视频 | 99久久精品99国产精品| 国产日产亚洲精品系列| 久久69国产一区二区蜜臀 | 男女男精品视频网| 欧美日韩你懂的| 夜夜爽夜夜爽精品视频| 色88888久久久久久影院按摩| 国产精品久久久久aaaa樱花| 国产九色精品成人porny| 精品少妇一区二区三区视频免付费 | 成人av电影在线网| 国产亚洲女人久久久久毛片| 裸体健美xxxx欧美裸体表演| 欧美写真视频网站| 一区二区三区精品在线观看| 91亚洲男人天堂| 综合中文字幕亚洲| 99久久精品一区二区| 国产精品高潮呻吟久久| 成人听书哪个软件好| 中文字幕免费一区| 99精品视频在线观看免费| 国产精品热久久久久夜色精品三区| 国产一区二区三区国产| 久久蜜桃一区二区| 国产精品自拍三区| 中文字幕国产精品一区二区| 波多野结衣中文字幕一区二区三区| 国产日韩欧美精品一区| jiyouzz国产精品久久| 亚洲色图19p| 欧洲一区在线电影| 日日摸夜夜添夜夜添精品视频 | 蜜臀久久久久久久| 精品日本一线二线三线不卡| 激情文学综合丁香| 国产欧美一区二区精品久导航| 成a人片国产精品| 亚洲视频一区在线| 欧美性色黄大片| 婷婷久久综合九色国产成人| 日韩三级在线免费观看| 国产制服丝袜一区| 国产精品每日更新在线播放网址| av不卡一区二区三区| 亚洲香蕉伊在人在线观| 日韩欧美一卡二卡| 丁香婷婷综合激情五月色| 亚洲欧美日韩系列| 欧美精品自拍偷拍| 国产伦精品一区二区三区免费| 亚洲四区在线观看| 91.xcao| 国产suv一区二区三区88区| 亚洲人快播电影网| 91精品黄色片免费大全| 国产剧情一区在线| 亚洲一区二区在线播放相泽 | 国产成人在线网站| 一区二区三区在线免费播放| 日韩视频一区二区在线观看| 国产精品2024| 亚洲国产欧美另类丝袜| 亚洲精品一区二区三区在线观看| av日韩在线网站| 人禽交欧美网站| 亚洲欧美一区二区三区久本道91| 51午夜精品国产| 成人性生交大片免费| 亚洲成人激情综合网| 久久久国际精品| 欧美色大人视频| 国产成人午夜高潮毛片| 亚洲第四色夜色| 国产女人aaa级久久久级| 欧美日韩综合在线| 国产一区二区三区综合| 亚洲午夜免费视频| 国产欧美日韩三级| 欧美日韩国产另类一区| 国产成人精品aa毛片| 亚洲高清不卡在线| 国产精品久久久久久久午夜片 | 国产一区不卡在线| 午夜精品在线视频一区| 中文字幕中文乱码欧美一区二区| 欧美一区二区日韩| 91成人国产精品| 国产成人精品亚洲777人妖| 日韩电影免费在线看| 18欧美亚洲精品| 久久婷婷久久一区二区三区| 在线精品国精品国产尤物884a| 国产另类ts人妖一区二区| 丝袜亚洲精品中文字幕一区| 1区2区3区欧美| 久久久精品中文字幕麻豆发布| 制服丝袜成人动漫| 色94色欧美sute亚洲线路二 | 亚洲男人的天堂在线观看| 精品国产成人系列| 欧美精品久久一区二区三区| 白白色亚洲国产精品| 国产精品一区二区在线观看网站 | 欧美草草影院在线视频| 欧美日韩国产一二三| 色综合久久中文综合久久牛| 成人性生交大片免费看在线播放| 国产一区欧美日韩| 日本不卡高清视频| 亚洲成av人片在线| 一区二区成人在线| 亚洲精品视频在线| 国产精品对白交换视频 | 99久久精品免费| 成人在线视频首页| 国产精品综合二区| 看片的网站亚洲| 美女视频网站黄色亚洲| 日韩国产精品久久久久久亚洲| 亚欧色一区w666天堂| 亚洲国产三级在线| 午夜精品成人在线视频| 亚洲一区自拍偷拍| 亚洲高清免费一级二级三级| 亚洲成人综合网站| 亚洲福利一区二区| 亚洲午夜一区二区| 图片区小说区区亚洲影院| 亚洲国产日韩一级| 香蕉影视欧美成人| 日日夜夜免费精品| 美女尤物国产一区| 激情综合一区二区三区| 韩国v欧美v亚洲v日本v| 国产乱子伦视频一区二区三区| 国产激情视频一区二区在线观看| 国产乱码精品一区二区三| 国产91丝袜在线播放0| 成人午夜激情影院| 99久久精品一区| 欧美中文字幕一区二区三区亚洲| 在线精品视频免费播放| 欧美精品免费视频| 精品伦理精品一区| 久久久亚洲午夜电影| 国产精品高清亚洲| 亚洲综合一区在线| 日韩国产欧美一区二区三区| 久久电影网站中文字幕|