Mercurial > mercurial > hgweb_searcher2.cgi
comparison src/myframe.cpp @ 21:eb3f5c7c990f
small changes.
author | pyon@macmini |
---|---|
date | Mon, 25 Jul 2011 05:20:55 +0900 |
parents | b67c74848dd0 |
children | 05f76f9f9186 |
comparison
equal
deleted
inserted
replaced
20:39f9f1c7618c | 21:eb3f5c7c990f |
---|---|
1 // Filename : mainframe.cpp | 1 // Filename : mainframe.cpp |
2 // Last Change: 06-Jul-2011. | 2 // Last Change: 22-Jul-2011. |
3 // | 3 // |
4 #include "wx/html/htmprint.h" | 4 #include "wx/html/htmprint.h" |
5 #include "wx/print.h" | 5 #include "wx/print.h" |
6 | 6 |
7 #include "symbol.h" | 7 #include "symbol.h" |
8 #include "common.h" | 8 #include "common.h" |
9 #include "myframe.h" | 9 #include "myframe.h" |
10 #include "ccnframe.h" | |
10 #include "hhsdb.h" | 11 #include "hhsdb.h" |
11 #include "htmlhelp.h" | 12 #include "htmlhelp.h" |
12 #include "main.h" | 13 #include "main.h" |
13 #include "wx/wxsqlite3.h" | 14 #include "wx/wxsqlite3.h" |
14 | 15 |
712 */ | 713 */ |
713 | 714 |
714 /* インデックス作成 */ | 715 /* インデックス作成 */ |
715 void MyFrame::OnMkIndex(wxCommandEvent& WXUNUSED(event)) | 716 void MyFrame::OnMkIndex(wxCommandEvent& WXUNUSED(event)) |
716 { | 717 { |
717 wxDateTime dt = m_datePicker->GetValue(); | 718 FrameHhsDB *f = (FrameHhsDB*)FindWindowById( ID_HHSDB ); |
718 wxString month = dt.Format(wxT("%m")); | 719 |
719 wxString year = dt.Format(wxT("%Y")); | 720 if ( f == NULL ) { |
720 if ( month.IsSameAs(wxT("01")) || month.IsSameAs(wxT("02")) || month.IsSameAs(wxT("03")) ) { | 721 FrameHhsDB *hhsdb = new FrameHhsDB( this, ID_HHSDB ); |
721 long y; | 722 hhsdb->Show(true); |
722 year.ToLong( &y, 10 ); | 723 } |
723 y--; | 724 else { |
724 year = wxString::Format(wxT("%d"),y); | 725 f->Raise(); |
725 } | 726 } |
726 wxString pathroot = wxGetApp().rootdir + wxFILE_SEP_PATH + year + dt.Format(wxT("\\%Y%m%d")); | 727 return; |
727 wxDir rootd(pathroot); | |
728 if ( !wxDir::Exists(pathroot) ) { | |
729 wxMessageBox( wxT("フォルダが存在しません.")+pathroot ); | |
730 return; | |
731 } | |
732 | |
733 wxProgressDialog pd( wxT("進行状況"), wxT("処理開始..."), 200, this, wxPD_APP_MODAL|wxPD_REMAINING_TIME|wxPD_AUTO_HIDE ); | |
734 pd.SetSize( wxSize(320,140) ); | |
735 int count=0; | |
736 | |
737 wxString ccndir; | |
738 bool cont = rootd.GetFirst( &ccndir, wxT("*.*"), wxDIR_DIRS ); | |
739 while ( cont ) { | |
740 wxString gszFile = wxGetCwd() + wxT("/db/ccn.db"); | |
741 wxSQLite3Database ccndb; | |
742 ccndb.Open( gszFile ); | |
743 | |
744 wxSQLite3Statement stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO ccn VALUES( ?, datetime('now','localtime') )"); | |
745 stmt.Bind( 1, dt.Format(wxT("%Y-%m-%d")) ); | |
746 stmt.ExecuteQuery(); | |
747 | |
748 stmt.Finalize(); | |
749 | |
750 wxDir ccnd( pathroot + wxFILE_SEP_PATH + ccndir ); | |
751 if ( !ccnd.IsOpened() ) return; | |
752 wxString hhsdir; | |
753 bool c = ccnd.GetFirst( &hhsdir, wxT("*.*"), wxDIR_DIRS ); | |
754 wxRegEx reHhs(wxT("^0[1238][0-9]{8}$")); // 被保番チェック | |
755 while ( c ) { | |
756 if ( reHhs.Matches(hhsdir) ) { | |
757 wxString path = pathroot + wxFILE_SEP_PATH + ccndir + wxFILE_SEP_PATH + hhsdir; | |
758 | |
759 stmt = ccndb.PrepareStatement("INSERT OR REPLACE INTO path VALUES( ?, ? )"); | |
760 stmt.Bind( 1, hhsdir ); | |
761 stmt.Bind( 2, path ); | |
762 stmt.ExecuteQuery(); | |
763 | |
764 stmt.Finalize(); | |
765 } | |
766 c = ccnd.GetNext(&hhsdir); | |
767 pd.Update( count++, hhsdir+wxT("@")+ccndir+wxT("を処理しました.") ); | |
768 } | |
769 ccndb.Close(); | |
770 | |
771 cont = rootd.GetNext(&ccndir); | |
772 } | |
773 wxMessageBox(wxT("インデックス作成が終了しました.")); | |
774 } | 728 } |
775 | 729 |
776 /* インデックス更新一覧 */ | 730 /* インデックス更新一覧 */ |
777 void MyFrame::OnListCcn(wxCommandEvent& WXUNUSED(event)) | 731 void MyFrame::OnListCcn(wxCommandEvent& WXUNUSED(event)) |
778 { | 732 { |