📄 天气预报采集系统dlg.cpp
字号:
return TRUE;
}
UINT __cdecl CTQYBDlg::WeatherCollectProc24(LPVOID p)
{
CString weather_update_log;
CString weather;
CString temp;
CStringArray arr24;
arr24.Add("广州");
arr24.Add("深圳");
arr24.Add("潮州");
arr24.Add("韶关");
arr24.Add("湛江");
arr24.Add("惠州");
arr24.Add("清远");
arr24.Add("东莞");
arr24.Add("江门");
arr24.Add("茂名");
arr24.Add("肇庆");
arr24.Add("汕尾");
arr24.Add("河源");
arr24.Add("揭阳");
arr24.Add("梅州");
arr24.Add("中山");
arr24.Add("德庆");
arr24.Add("阳江");
arr24.Add("云浮");
arr24.Add("珠海");
arr24.Add("汕头");
arr24.Add("佛山");
for (int j=0;j<1000;j++)
{
for (int i=0;i<arr24.GetCount();i++)
{
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->GetWeatherByCity(arr24[i],weather);
weather_update_log.Format("%s\r\n%s",arr24[i],weather);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.GetWindowText(temp);
weather_update_log+="\r\n";
weather_update_log+=temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.SetWindowText(weather_update_log);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->RecordWeatherByCity(arr24[i],weather);
}
j=1000;
}
CString updated_temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.GetWindowText(updated_temp);
updated_temp+="\r\n已更新 广东_24";
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.SetWindowText(updated_temp);
return TRUE;
}
UINT __cdecl CTQYBDlg::WeatherCollectProc25(LPVOID p)
{
CString weather_update_log;
CString weather;
CString temp;
CStringArray arr25;
arr25.Add("南宁");
arr25.Add("桂林");
arr25.Add("阳朔");
arr25.Add("柳州");
arr25.Add("梧州");
arr25.Add("玉林");
arr25.Add("桂平");
arr25.Add("贺州");
arr25.Add("钦州");
arr25.Add("贵港");
arr25.Add("防城港");
arr25.Add("百色");
arr25.Add("北海");
arr25.Add("河池");
arr25.Add("来宾");
arr25.Add("崇左");
for (int j=0;j<1000;j++)
{
for (int i=0;i<arr25.GetCount();i++)
{
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->GetWeatherByCity(arr25[i],weather);
weather_update_log.Format("%s\r\n%s",arr25[i],weather);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.GetWindowText(temp);
weather_update_log+="\r\n";
weather_update_log+=temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.SetWindowText(weather_update_log);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->RecordWeatherByCity(arr25[i],weather);
}
j=1000;
}
CString updated_temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.GetWindowText(updated_temp);
updated_temp+="\r\n已更新 广西_25";
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.SetWindowText(updated_temp);
return TRUE;
}
UINT __cdecl CTQYBDlg::WeatherCollectProc26(LPVOID p)
{
CString weather_update_log;
CString weather;
CString temp;
CStringArray arr26;
arr26.Add("昆明");
arr26.Add("保山");
arr26.Add("楚雄");
arr26.Add("德宏");
arr26.Add("红河");
arr26.Add("临沧");
arr26.Add("怒江");
//arr26.Add("曲靖");
arr26.Add("思茅");
arr26.Add("文山");
arr26.Add("玉溪");
arr26.Add("昭通");
arr26.Add("丽江");
arr26.Add("大理");
for (int j=0;j<1000;j++)
{
for (int i=0;i<arr26.GetCount();i++)
{
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->GetWeatherByCity(arr26[i],weather);
weather_update_log.Format("%s\r\n%s",arr26[i],weather);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.GetWindowText(temp);
weather_update_log+="\r\n";
weather_update_log+=temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.SetWindowText(weather_update_log);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->RecordWeatherByCity(arr26[i],weather);
}
j=1000;
}
CString updated_temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.GetWindowText(updated_temp);
updated_temp+="\r\n已更新 云南_26";
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.SetWindowText(updated_temp);
return TRUE;
}
UINT __cdecl CTQYBDlg::WeatherCollectProc27(LPVOID p)
{
CString weather_update_log;
CString weather;
CString temp;
CStringArray arr27;
arr27.Add("海口");
arr27.Add("三亚");
arr27.Add("儋州");
//arr27.Add("琼山");
arr27.Add("通什");
arr27.Add("文昌");
for (int j=0;j<1000;j++)
{
for (int i=0;i<arr27.GetCount();i++)
{
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->GetWeatherByCity(arr27[i],weather);
weather_update_log.Format("%s\r\n%s",arr27[i],weather);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.GetWindowText(temp);
weather_update_log+="\r\n";
weather_update_log+=temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.SetWindowText(weather_update_log);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->RecordWeatherByCity(arr27[i],weather);
}
j=1000;
}
CString updated_temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.GetWindowText(updated_temp);
updated_temp+="\r\n已更新 海南_27";
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.SetWindowText(updated_temp);
return TRUE;
}
UINT __cdecl CTQYBDlg::WeatherCollectProc28(LPVOID p)
{
CString weather_update_log;
CString weather;
CString temp;
CStringArray arr28;
arr28.Add("乌鲁木齐");
arr28.Add("阿勒泰");
arr28.Add("阿克苏");
arr28.Add("昌吉");
arr28.Add("哈密");
arr28.Add("和田");
arr28.Add("喀什");
arr28.Add("克拉玛依");
arr28.Add("石河子");
arr28.Add("塔城");
arr28.Add("库尔勒");
arr28.Add("吐鲁番");
arr28.Add("伊宁");
for (int j=0;j<1000;j++)
{
for (int i=0;i<arr28.GetCount();i++)
{
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->GetWeatherByCity(arr28[i],weather);
weather_update_log.Format("%s\r\n%s",arr28[i],weather);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.GetWindowText(temp);
weather_update_log+="\r\n";
weather_update_log+=temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.SetWindowText(weather_update_log);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->RecordWeatherByCity(arr28[i],weather);
}
j=1000;
}
CString updated_temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.GetWindowText(updated_temp);
updated_temp+="\r\n已更新 新疆_28";
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.SetWindowText(updated_temp);
return TRUE;
}
UINT __cdecl CTQYBDlg::WeatherCollectProc29(LPVOID p)
{
CString weather_update_log;
CString weather;
CString temp;
CStringArray arr29;
arr29.Add("拉萨");
arr29.Add("阿里");
arr29.Add("昌都");
arr29.Add("那曲");
arr29.Add("日喀则");
arr29.Add("山南");
arr29.Add("林芝");
for (int j=0;j<1000;j++)
{
for (int i=0;i<arr29.GetCount();i++)
{
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->GetWeatherByCity(arr29[i],weather);
weather_update_log.Format("%s\r\n%s",arr29[i],weather);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.GetWindowText(temp);
weather_update_log+="\r\n";
weather_update_log+=temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.SetWindowText(weather_update_log);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->RecordWeatherByCity(arr29[i],weather);
}
j=1000;
}
CString updated_temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.GetWindowText(updated_temp);
updated_temp+="\r\n已更新 西藏_29";
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.SetWindowText(updated_temp);
return TRUE;
}
UINT __cdecl CTQYBDlg::WeatherCollectProc30(LPVOID p)
{
CString weather_update_log;
CString weather;
CString temp;
CStringArray arr30;
arr30.Add("台北");
arr30.Add("高雄");
for (int j=0;j<1000;j++)
{
for (int i=0;i<arr30.GetCount();i++)
{
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->GetWeatherByCity(arr30[i],weather);
weather_update_log.Format("%s\r\n%s",arr30[i],weather);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.GetWindowText(temp);
weather_update_log+="\r\n";
weather_update_log+=temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_Log_Edit.SetWindowText(weather_update_log);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->RecordWeatherByCity(arr30[i],weather);
}
j=1000;
}
CString updated_temp;
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.GetWindowText(updated_temp);
updated_temp+="\r\n已更新 台湾_30";
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->m_updated_log.SetWindowText(updated_temp);
return TRUE;
}
// 开始更新天气数据
BOOL CTQYBDlg::StartUpdata(void)
{
AfxBeginThread(WeatherCollectProc1,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc2,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc3,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc4,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc5,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc6,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc7,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc8,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc9,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc10,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc11,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc12,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc13,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc14,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc15,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc16,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc17,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc18,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc19,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc20,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc21,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc22,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc23,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc24,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc25,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc26,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc27,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc28,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc29,NULL,0,0,0,0);
AfxBeginThread(WeatherCollectProc30,NULL,0,0,0,0);
//((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->db.Close();
return 0;
}
BOOL CTQYBDlg::GetWeatherByCity(LPCTSTR CITY,CString& DATA)
{
CString html;
CString str;
unsigned short nPort = 80;
DWORD dwRes = 0;
CURLEncode en;
BOOL RET;
str.Format("city=%s&Submit5=%s",en.URLEncode(CString(CITY)),en.URLEncode(CString("提交")));
RET=CAHttpForCE::Post(html,"www.cma.gov.cn",nPort,"tqyb/v2/url.php",str,dwRes,TRUE);
if (!RET)
{
return FALSE;
}
html.Replace(" ","");
CParseHTML ph;
CString section;
RET=ph.GetHtmlSignSection(html,"<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"table_blue2\">","</table>",section,1,2);
if (!RET)
return FALSE;
RET=ph.GetSection2Data(section,DATA);
if (!RET)
return FALSE;
return TRUE;
}
//通过城市名,将天气数据记录数据库
BOOL CTQYBDlg::RecordWeatherByCity(LPCTSTR CITY,CString& DATA)
{
//CString temp;
CString sql;
CString delete_sql;
CTime t;
CString date;
t=CTime::GetCurrentTime();
date=t.Format(_T("%Y-%m-%d"));
try
{
delete_sql.Format("DELETE weather_collection WHERE city='%s' AND year_month_day='%s'",
CITY,DATA);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->db.ExecuteSQL(delete_sql);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->db.ExecuteSQL("Commit;");
}
catch (CDBException* e)
{
//e->m_strError;
e->Delete();
}
try
{
sql.Format("insert into weather_collection (city, date_w, weather, id) values('%s', '%s', '%s', weather_sequence.nextval)",CITY,date,
DATA);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->db.ExecuteSQL(sql);
((CTQYBDlg*)AfxGetApp()->m_pMainWnd)->db.ExecuteSQL("Commit;");
//AFX_SQL_ERROR_NO_CURRENT_RECORD
}
catch (CDBException* e)
{
//AfxMessageBox(e->m_strError);
e->Delete();
}
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -