comparison include/dndfile.h @ 4:fdba695b99f1

More fast ( read from DB ). Improve the precision of marksheet judgement.
author pyon@macmini
date Wed, 11 Sep 2013 19:09:14 +0900
parents 1a64119ab257
children bc2e2b304095
comparison
equal deleted inserted replaced
3:1a64119ab257 4:fdba695b99f1
1 // Filename : dndfile.h 1 // Filename : dndfile.h
2 // Last Change: 27-Aug-2013. 2 // Last Change: 11-Sep-2013.
3 // 3 //
4 4
5 #include "db.h" 5 #include "db.h"
6 6
7 class DnDFile : public wxFileDropTarget 7 class DnDFile : public wxFileDropTarget
8 { 8 {
9 public: 9 public:
10 DnDFile( wxGrid *grid ) 10 DnDFile( wxGrid *grid )
11 {
12 m_grid = grid;
13 }
14 virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames )
15 {
16 size_t nFiles = filenames.GetCount();
17 if ( nFiles != 1 ) return false;
18
19 m_grid->ClearGrid();
20
21 // ファイルから被保番リストを生成
22 wxTextFile csv;
23 csv.Open( filenames[0] );
24
25 wxRegEx reHhs( wxT("^0[1238][0-9]{8}$") );
26 wxArrayString hhs;
27 for ( int n = 0; n < csv.GetLineCount(); n++ ) {
28 wxString hhsno = csv.GetLine( n ).BeforeFirst( ',', NULL );
29 if ( ! reHhs.Matches( hhsno ) )
30 continue;
31 hhs.Add( hhsno );
32 }
33 csv.Close();
34
35 //
36 int d = hhs.GetCount() - m_grid->GetNumberRows();
37 if ( d > 0 )
38 m_grid->AppendRows( d, true );
39
40 // グリッドに情報を読込み
41 wxArrayString res = GetHhsInfoAndPathByHhsNoList( hhs );
42 for ( int r = 0; r < res.GetCount(); r++ ) {
43 wxArrayString data = wxSplit( res[r], '_', '\\' );
44 m_grid->SetCellValue( r, 0, data[0] );
45 m_grid->SetCellValue( r, 1, data[1] );
46 m_grid->SetCellValue( r, 2, data[2] );
47 }
48
49 return true;
50 }
51
52 private:
53 wxGrid* m_grid;
54 };
55
56 class DnDFile2 : public wxFileDropTarget
57 {
58 public:
59 DnDFile2( wxGrid *grid )
11 { 60 {
12 m_grid = grid; 61 m_grid = grid;
13 } 62 }
14 virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames ) 63 virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames )
15 { 64 {