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

📄 typhooncls.h

📁 解析中央气象局下发的台风报文
💻 H
字号:
#pragma once
#include<afxtempl.h>
struct TYPHOONFORCAST
{
	float Latitude;
	float Longitude;
	int  Pressure;
	float Wind_Power;
	float Radius_7;
	float Radius_10;
	float Move_Speed;
	CString Affect_affect;
	CString Direction;
	COleDateTime Predict_Time;

	TYPHOONFORCAST()
	{
		this->Clear ();
	}
	void Clear()
	{
		Latitude=INVALID_VALUE;
		Longitude=INVALID_VALUE;
		Pressure=INVALID_VALUE;
		Wind_Power=INVALID_VALUE;
		Radius_7=INVALID_VALUE;
		Radius_10=INVALID_VALUE;
		Move_Speed=INVALID_VALUE;
		Affect_affect="";
		Direction="";
		Predict_Time=INVALID_TIME;

	}

};
struct TYPHOONDATA
{
	bool IsValid;
	//真实数据
	CString Typhoon_ID;
	CString Station_Name;
	CString Title_EN;
	COleDateTime Date_Time;
	float Latitude;
	float Longitude;
	int  Pressure;
	float Wind_Power;
	float Radius_7;
	float Radius_10;
	CString Direction;
	float Move_Speed;
	CString Intensity_EN;
	CArray<TYPHOONFORCAST*,TYPHOONFORCAST*>m_tfArray;
	//预报数据
	TYPHOONDATA()
	{
		this->Clear ();
	}
	void Clear()
	{
		this->Typhoon_ID="";
		this->Station_Name="";
		this->Title_EN="";
		this->Intensity_EN="";
		this->Latitude =INVALID_VALUE;
		this->Longitude =INVALID_VALUE;
		this->Pressure =-INVALID_VALUE;
		this->Wind_Power =INVALID_VALUE;
		this->Radius_7 =INVALID_VALUE;
		this->Radius_10 =INVALID_VALUE;
		this->Direction="";
		this->Move_Speed =INVALID_VALUE;
		this->Date_Time=INVALID_TIME;
		for(int i=0;i<this->m_tfArray.GetCount ();i++)
		{
			TYPHOONFORCAST*pTf=m_tfArray[i];
			delete pTf;
		}
		m_tfArray.RemoveAll ();
		this->IsValid=false;
	}
	void AddForcast(TYPHOONFORCAST*pTf)
	{
		this->m_tfArray .Add (pTf);
	}
	
};
struct TYPHOONSTART
{
	CString Typhoon_ID;
	CString Intensity_EN;
	CString Title_EN;
	COleDateTime Start_Time;
	TYPHOONSTART()
	{
		this->Clear ();
		
	}
	void Clear()
	{
		this->Typhoon_ID ="";
		this->Intensity_EN ="";
		this->Title_EN ="";
		this->Start_Time =INVALID_TIME;
	}
	
};
struct TYPHOONEND
{
	CString Typhoon_ID;
	COleDateTime End_Time;
	TYPHOONEND()
	{
		this->Clear ();
		
	}
	void Clear()
	{
		this->Typhoon_ID ="";
		this->End_Time =INVALID_TIME;
	}
	
};

class CTyphoonCls
{
public:
	CTyphoonCls(void);
	virtual ~CTyphoonCls(void);
public:
	void HandleTyphoon();
	BOOL ReadTyphoon(CString strPath, CTime dtFile);
	BOOL SaveTyphoon();
	void Clear();
	CString GetTyphoonID(CString strId,CString strName);
    CString GetCnName(CString strEnName);
    CString GetIntensityCnName(CString strEnName);
	HANDLE CreteThread();
	void TerminateThread();
	HANDLE hMutex;
	static DWORD CALLBACK ThreadProc(LPVOID lpVoid);

	void SaveTempData(TYPHOONDATA *pTd);
	void ReadTempData();
	

private:
	HANDLE hThread;
	DWORD dwThread;
public:
	CArray<TYPHOONDATA*,TYPHOONDATA*>m_tdArray;
	CArray<TYPHOONSTART*,TYPHOONSTART*>m_tsArray;
	CArray<TYPHOONEND*,TYPHOONEND*>m_tEndArray;
	CString m_strPath;

	CAdoConnection cn;
};

⌨️ 快捷键说明

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