Exemplo n.º 1
0
int GetTime(char* UpdateTime)
{
	int HH = 0;// atoi(&UpdateTime[0]);
	int mm = 0;//atoi(&UpdateTime[3]);
	int ss = 0;//atoi(&UpdateTime[6]);
	if (strlen(UpdateTime) <= 6)
	{
		GetUpdateTime_HHmmss(UpdateTime, &HH, &mm, &ss);
	}
	else
	{
		GetUpdateTime_HH_mm_ss(UpdateTime, &HH, &mm, &ss);
	}
	return HH * 10000 + mm * 100 + ss;
}
Exemplo n.º 2
0
int GetUpdateTime(char* UpdateTime, int* _UpdateTime, int* UpdateMillisec)
{
	// UpdateTime处理
	int HH = 0;// atoi(&UpdateTime[0]);
	int mm = 0;//atoi(&UpdateTime[3]);
	int ss = 0;//atoi(&UpdateTime[6]);
	if (strlen(UpdateTime) <= 6)
	{
		GetUpdateTime_HHmmss(UpdateTime, &HH, &mm, &ss);
	}
	else
	{
		GetUpdateTime_HH_mm_ss(UpdateTime, &HH, &mm, &ss);
	}

	if (UpdateMillisec)
	{
		if (strlen(UpdateTime)>9)
		{
			*UpdateMillisec = atoi(&UpdateTime[9]);
		}
		else
		{
			*UpdateMillisec = 0;
		}
	}

	if (_UpdateTime)
	{
		*_UpdateTime = HH * 10000 + mm * 100 + ss;
		if (*_UpdateTime == 0)
		{
			time_t now = time(0);
			struct tm *ptmNow = localtime(&now);
			int datetime = ptmNow->tm_hour * 10000 + ptmNow->tm_min * 100 + ptmNow->tm_sec;
			if (datetime > 1500 && datetime < 234500)
				*_UpdateTime = datetime;
		}
	}

	return HH;
}
Exemplo n.º 3
0
void CharTable2CJLB(FieldInfo_STRUCT** ppFieldInfos, char** ppTable, CJLB_STRUCT*** pppResults, void* Client)
{
	*pppResults = nullptr;
	if (ppTable == nullptr)
		return;

	int count = GetRowCountTableBody(ppTable);
	if (count <= 0)
		return;

	CJLB_STRUCT** ppResults = new CJLB_STRUCT*[count + 1]();
	ppResults[count] = nullptr;
	*pppResults = ppResults;

	for (int i = 0; i < count; ++i)
	{
		ppResults[i] = new CJLB_STRUCT();

		int j = 0;
		FieldInfo_STRUCT* pRow = ppFieldInfos[j];
		while (pRow != 0)
		{
			char* t = ppTable[i * COL_EACH_ROW + j];
			switch (pRow->FieldID)
			{
			case FIELD_CJRQ:
				strcpy_s(ppResults[i]->CJRQ, t);
				break;
			case FIELD_CJSJ:
				strcpy_s(ppResults[i]->CJSJ, t);
				break;
			case FIELD_GDDM:
				strcpy_s(ppResults[i]->GDDM, t);
				break;
			case FIELD_ZQDM:
				strcpy_s(ppResults[i]->ZQDM, t);
				break;
			case FIELD_ZQMC:
				strcpy_s(ppResults[i]->ZQMC, t);
				break;
			case FIELD_MMBZ:
				strcpy_s(ppResults[i]->MMBZ, t);
				break;
			case FIELD_WTLB:
				strcpy_s(ppResults[i]->WTLB, t);
				break;
			case FIELD_CJJG:
				strcpy_s(ppResults[i]->CJJG, t);
				break;
			case FIELD_CJSL:
				strcpy_s(ppResults[i]->CJSL, t);
				break;
			case FIELD_FSJE:
				strcpy_s(ppResults[i]->FSJE, t);
				break;
			case FIELD_SYJE:
				strcpy_s(ppResults[i]->SYJE, t);
				break;
			case FIELD_YJ:
				strcpy_s(ppResults[i]->YJ, t);
				break;
			case FIELD_YHS:
				strcpy_s(ppResults[i]->YHS, t);
				break;
			case FIELD_GHF:
				strcpy_s(ppResults[i]->GHF, t);
				break;
			case FIELD_CJF:
				strcpy_s(ppResults[i]->CJF, t);
				break;
			case FIELD_CJBH:
				strcpy_s(ppResults[i]->CJBH, t);
				break;
			case FIELD_CDBZ:
				strcpy_s(ppResults[i]->CDBZ, t);
				break;
			case FIELD_WTBH:
				strcpy_s(ppResults[i]->WTBH, t);
				break;
			}
			++j;
			pRow = ppFieldInfos[j];
		}

		ppResults[i]->CJRQ_ = atoi(ppResults[i]->CJRQ);
		ppResults[i]->MMBZ_ = atoi(ppResults[i]->MMBZ);
		ppResults[i]->CJJG_ = atof(ppResults[i]->CJJG);
		ppResults[i]->CJSL_ = atoi(ppResults[i]->CJSL);
		ppResults[i]->SYJE_ = atof(ppResults[i]->SYJE);
		ppResults[i]->YJ_ = atof(ppResults[i]->YJ);
		ppResults[i]->YHS_ = atof(ppResults[i]->YHS);
		ppResults[i]->GHF_ = atof(ppResults[i]->GHF);
		ppResults[i]->CJF_ = atof(ppResults[i]->CJF);
		ppResults[i]->CDBZ_ = atoi(ppResults[i]->CDBZ);
		ppResults[i]->FSJE_ = atof(ppResults[i]->FSJE);


		if (strstr(ppResults[i]->CJSJ, ":"))
		{
			int HH = 0, mm = 0, ss = 0;
			GetUpdateTime_HH_mm_ss(ppResults[i]->CJSJ, &HH, &mm, &ss);
			ppResults[i]->CJSJ_ = HH * 10000 + mm * 100 + ss;
		}
		else
		{
			ppResults[i]->CJSJ_ = atoi(ppResults[i]->CJSJ);
		}

		ppResults[i]->WTLB_ = WTLB_str_2_int(ppResults[i]->WTLB);

		ppResults[i]->Client = Client;
	}
}
Exemplo n.º 4
0
void CharTable2WTLB(FieldInfo_STRUCT** ppFieldInfos, char** ppTable, WTLB_STRUCT*** pppResults, void* Client)
{
	*pppResults = nullptr;
	if (ppTable == nullptr)
		return;

	int count = GetRowCountTableBody(ppTable);
	if (count <= 0)
		return;

	WTLB_STRUCT** ppResults = new WTLB_STRUCT*[count + 1]();
	ppResults[count] = nullptr;
	*pppResults = ppResults;

	int col_147 = GetIndexByFieldID(ppFieldInfos, FIELD_ZTSM);

	for (int i = 0; i < count; ++i)
	{
		ppResults[i] = new WTLB_STRUCT();

		int j = 0;
		FieldInfo_STRUCT* pRow = ppFieldInfos[j];
		while (pRow != 0)
		{
			char* t = ppTable[i * COL_EACH_ROW + j];
			switch (pRow->FieldID)
			{
			case FIELD_WTRQ:
				strcpy_s(ppResults[i]->WTRQ, t);
				break;
			case FIELD_WTSJ:
				strcpy_s(ppResults[i]->WTSJ, t);
				break;
			case FIELD_GDDM:
				strcpy_s(ppResults[i]->GDDM, t);
				break;
			case FIELD_ZQDM:
				strcpy_s(ppResults[i]->ZQDM, t);
				break;
			case FIELD_ZQMC:
				strcpy_s(ppResults[i]->ZQMC, t);
				break;
			case FIELD_MMBZ:
				strcpy_s(ppResults[i]->MMBZ, t);
				break;
			case FIELD_WTLB:
				strcpy_s(ppResults[i]->WTLB, t);
				break;
			case FIELD_JYSDM:
				strcpy_s(ppResults[i]->JYSDM, t);
				break;
			case FIELD_WTJG:
				strcpy_s(ppResults[i]->WTJG, t);
				break;
			case FIELD_WTSL:
				strcpy_s(ppResults[i]->WTSL, t);
				break;
			case FIELD_CJJG:
				strcpy_s(ppResults[i]->CJJG, t);
				break;
			case FIELD_CJSL:
				strcpy_s(ppResults[i]->CJSL, t);
				break;
			case FIELD_CDSL:
				strcpy_s(ppResults[i]->CDSL, t);
				break;
			case FIELD_WTBH:
				strcpy_s(ppResults[i]->WTBH, t);
				break;
			case FIELD_BJFS:
				strcpy_s(ppResults[i]->BJFS, t);
				break;
			case FIELD_ZTSM:
				strcpy_s(ppResults[i]->ZTSM, t);
				break;
			case FIELD_DJZJ:
				strcpy_s(ppResults[i]->DJZJ, t);
				break;
			case FIELD_BLXX:
				strcpy_s(ppResults[i]->BLXX, t);
				break;
			case FIELD_WTFS:
				strcpy_s(ppResults[i]->WTFS, t);
				break;
			case FIELD_ZJZH:
				strcpy_s(ppResults[i]->ZJZH, t);
				break;
			case FIELD_ZHLB:
				strcpy_s(ppResults[i]->ZHLB, t);
				break;
			}
			++j;
			pRow = ppFieldInfos[j];
		}

		ppResults[i]->WTRQ_ = atoi(ppResults[i]->WTRQ);
		ppResults[i]->MMBZ_ = atoi(ppResults[i]->MMBZ);
		ppResults[i]->JYSDM_ = atoi(ppResults[i]->JYSDM);
		ppResults[i]->WTJG_ = atof(ppResults[i]->WTJG);
		ppResults[i]->WTSL_ = atoi(ppResults[i]->WTSL);
		ppResults[i]->CJJG_ = atof(ppResults[i]->CJJG);
		ppResults[i]->CJSL_ = atoi(ppResults[i]->CJSL);
		ppResults[i]->DJZJ_ = atof(ppResults[i]->DJZJ);
		ppResults[i]->WTFS_ = atof(ppResults[i]->WTFS);
		ppResults[i]->ZHLB_ = atoi(ppResults[i]->ZHLB);

		// 可能没有,怎么办?那就只好不用它了
		ppResults[i]->CDSL_ = atoi(ppResults[i]->CDSL);

		if (strstr(ppResults[i]->WTSJ, ":"))
		{
			int HH = 0, mm = 0, ss = 0;
			GetUpdateTime_HH_mm_ss(ppResults[i]->WTSJ, &HH, &mm, &ss);
			ppResults[i]->WTSJ_ = HH * 10000 + mm * 100 + ss;
		}
		else
		{
			ppResults[i]->WTSJ_ = atoi(ppResults[i]->WTSJ);
		}


		if (col_147 >= 0)
		{
			// 第一个的字符,并转成数字,其实也可以全走文本比较的方式,但认为这样更快
			if (ppResults[i]->ZTSM[1] == '-')
			{
				ppResults[i]->ZTSM_ = ppResults[i]->ZTSM[0] - '0';
			}
			else
			{
				ppResults[i]->ZTSM_ = ZTSM_str_2_int(ppResults[i]->ZTSM);
			}
		}
		else
		{
			// 信达证券没有状态说明,需要模拟计算出来,这种情况下,撤单数量怎么都要有
			if (ppResults[i]->CDSL_ > 0)
			{
				ppResults[i]->ZTSM_ = ZTSM_AllCancelled;
			}
			else if (ppResults[i]->CJSL_ == ppResults[i]->WTSL_)
			{
				ppResults[i]->ZTSM_ = ZTSM_AllFilled;
			}
			else if (ppResults[i]->CJSL_ == 0)
			{
				ppResults[i]->ZTSM_ = ZTSM_New;
			}
			else
			{
				ppResults[i]->ZTSM_ = ZTSM_PartiallyFilled;
			}
		}


		ppResults[i]->BJFS_ = BJFS_str_2_int(ppResults[i]->BJFS);
		ppResults[i]->WTLB_ = WTLB_str_2_int(ppResults[i]->WTLB);

		ppResults[i]->Client = Client;
	}
}