· 7 years ago · Sep 06, 2018, 06:34 AM
1using System;
2using System.Data;
3using System.Data.SQLite;
4using System.Linq;
5using System.Text;
6
7namespace ConsoleTest
8{
9 class Program
10 {
11 #region RACE テーブル作æˆç”¨ SQL
12 const string tableCreateSQL_RACE =
13 "CREATE TABLE IF NOT EXISTS RACE (" +
14 "RecordSpec CHAR(2)," +
15 "DataKubun CHAR(1)," +
16 "MakeDate CHAR(8)," +
17 "Year CHAR(4)," +
18 "MonthDay CHAR(4)," +
19 "JyoCD CHAR(2)," +
20 "Kaiji CHAR(2)," +
21 "Nichiji CHAR(2)," +
22 "RaceNum CHAR(2)," +
23 "YoubiCD CHAR(1)," +
24 "TokuNum CHAR(4)," +
25 "Hondai CHAR(60)," +
26 "Fukudai CHAR(60)," +
27 "Kakko CHAR(60)," +
28 "HondaiEng CHAR(120)," +
29 "FukudaiEng CHAR(120)," +
30 "KakkoEng CHAR(120)," +
31 "Ryakusyo10 CHAR(20)," +
32 "Ryakusyo6 CHAR(12)," +
33 "Ryakusyo3 CHAR(6)," +
34 "Kubun CHAR(1)," +
35 "Nkai CHAR(3)," +
36 "GradeCD CHAR(1)," +
37 "GradeCDBefore CHAR(1)," +
38 "SyubetuCD CHAR(2)," +
39 "KigoCD CHAR(3)," +
40 "JyuryoCD CHAR(1)," +
41 "JyokenCD1 CHAR(3)," +
42 "JyokenCD2 CHAR(3)," +
43 "JyokenCD3 CHAR(3)," +
44 "JyokenCD4 CHAR(3)," +
45 "JyokenCD5 CHAR(3)," +
46 "JyokenName CHAR(60)," +
47 "Kyori CHAR(4)," +
48 "KyoriBefore CHAR(4)," +
49 "TrackCD CHAR(2)," +
50 "TrackCDBefore CHAR(2)," +
51 "CourseKubunCD CHAR(2)," +
52 "CourseKubunCDBefore CHAR(2)," +
53 "Honsyokin1 CHAR(8)," +
54 "Honsyokin2 CHAR(8)," +
55 "Honsyokin3 CHAR(8)," +
56 "Honsyokin4 CHAR(8)," +
57 "Honsyokin5 CHAR(8)," +
58 "Honsyokin6 CHAR(8)," +
59 "Honsyokin7 CHAR(8)," +
60 "HonsyokinBefore1 CHAR(8)," +
61 "HonsyokinBefore2 CHAR(8)," +
62 "HonsyokinBefore3 CHAR(8)," +
63 "HonsyokinBefore4 CHAR(8)," +
64 "HonsyokinBefore5 CHAR(8)," +
65 "Fukasyokin1 CHAR(8)," +
66 "Fukasyokin2 CHAR(8)," +
67 "Fukasyokin3 CHAR(8)," +
68 "Fukasyokin4 CHAR(8)," +
69 "Fukasyokin5 CHAR(8)," +
70 "FukasyokinBefore1 CHAR(8)," +
71 "FukasyokinBefore2 CHAR(8)," +
72 "FukasyokinBefore3 CHAR(8)," +
73 "HassoTime CHAR(4)," +
74 "HassoTimeBefore CHAR(4)," +
75 "TorokuTosu CHAR(2)," +
76 "SyussoTosu CHAR(2)," +
77 "NyusenTosu CHAR(2)," +
78 "TenkoCD CHAR(1)," +
79 "SibaBabaCD CHAR(1)," +
80 "DirtBabaCD CHAR(1)," +
81 "LapTime1 CHAR(3)," +
82 "LapTime2 CHAR(3)," +
83 "LapTime3 CHAR(3)," +
84 "LapTime4 CHAR(3)," +
85 "LapTime5 CHAR(3)," +
86 "LapTime6 CHAR(3)," +
87 "LapTime7 CHAR(3)," +
88 "LapTime8 CHAR(3)," +
89 "LapTime9 CHAR(3)," +
90 "LapTime10 CHAR(3)," +
91 "LapTime11 CHAR(3)," +
92 "LapTime12 CHAR(3)," +
93 "LapTime13 CHAR(3)," +
94 "LapTime14 CHAR(3)," +
95 "LapTime15 CHAR(3)," +
96 "LapTime16 CHAR(3)," +
97 "LapTime17 CHAR(3)," +
98 "LapTime18 CHAR(3)," +
99 "LapTime19 CHAR(3)," +
100 "LapTime20 CHAR(3)," +
101 "LapTime21 CHAR(3)," +
102 "LapTime22 CHAR(3)," +
103 "LapTime23 CHAR(3)," +
104 "LapTime24 CHAR(3)," +
105 "LapTime25 CHAR(3)," +
106 "SyogaiMileTime CHAR(4)," +
107 "HaronTimeS3 CHAR(3)," +
108 "HaronTimeS4 CHAR(3)," +
109 "HaronTimeL3 CHAR(3)," +
110 "HaronTimeL4 CHAR(3)," +
111 "Corner1 CHAR(1)," +
112 "Syukaisu1 CHAR(1)," +
113 "Jyuni1 CHAR(70)," +
114 "Corner2 CHAR(1)," +
115 "Syukaisu2 CHAR(1)," +
116 "Jyuni2 CHAR(70)," +
117 "Corner3 CHAR(1)," +
118 "Syukaisu3 CHAR(1)," +
119 "Jyuni3 CHAR(70)," +
120 "Corner4 CHAR(1)," +
121 "Syukaisu4 CHAR(1)," +
122 "Jyuni4 CHAR(70)," +
123 "RecordUpKubun CHAR(1)," +
124 "PRIMARY KEY(Year, MonthDay, JyoCD, Kaiji, Nichiji, RaceNum)" +
125 ")";
126 #endregion
127 struct ProgressBar
128 {
129 public int Maximum { set; get; }
130 public int Value { set; get; }
131 }
132 [STAThread]
133 static void Main(string[] args)
134 {
135 var prgDownload = new ProgressBar();
136 var prgJVRead = new ProgressBar();
137
138 var cv = new JVData_CodeConv();
139 cv.FileOpen("CodeTable.csv");
140
141 //=====================================================================================
142 var qLiteConnection = new SQLiteConnection();
143 qLiteConnection.ConnectionString = "Data Source=JVData.sqlite;";
144
145 var qLiteCommand = qLiteConnection.CreateCommand();
146 qLiteCommand.CommandText = tableCreateSQL_RACE;
147 qLiteConnection.Open();
148 qLiteCommand.ExecuteNonQuery();
149 qLiteConnection.Close();
150
151 var selectCmd = new SQLiteCommand();
152 selectCmd.Connection = qLiteConnection;
153 selectCmd.CommandText = "SELECT * FROM RACE";
154
155 var dataAdapter = new SQLiteDataAdapter();
156 dataAdapter.SelectCommand = selectCmd;
157
158 DataSet dataSet = new DataSet();
159 dataAdapter.Fill(dataSet, "RACE");
160
161 //=====================================================================================
162 var jvLink = new JVDTLabLib.JVLink();
163
164 //=====================================================================================
165 jvLink.JVSetUIProperties();
166
167 //=====================================================================================
168 jvLink.JVInit("UNKNOWN");
169
170 //=====================================================================================
171 var nReadCount = 0; // JVOpen: ç·èªã¿è¾¼ã¿ãƒ•ァイル数
172 var nDownloadCount = 0; // JVOpen: ç·ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ãƒ•ァイル数
173 var strLastFileTimestamp = ""; // JVOpen: 最新ファイルã®ã‚¿ã‚¤ãƒ スタンプ
174
175 jvLink.JVOpen("RACE", "20180101000000", 3, ref nReadCount, ref nDownloadCount, out strLastFileTimestamp);
176
177 Console.WriteLine(
178 "èªã¿è¾¼ã¿ãƒ•ァイル数 : " + nReadCount + "\n" +
179 "ダウンãƒãƒ¼ãƒ‰ãƒ•ァイル数 : " + nDownloadCount + "\n" +
180 "タイムスタンプ : " + strLastFileTimestamp + "\n"
181 );
182
183 if (nDownloadCount == 0)
184 {
185 prgDownload.Maximum = 100;
186 prgDownload.Value = 100;
187 }
188 else
189 {
190 prgDownload.Maximum = nDownloadCount;
191 prgDownload.Value = 0;
192 }
193 prgJVRead.Maximum = nReadCount;
194 prgJVRead.Value = 0;
195
196 //=====================================================================================
197 var nBuffSize = 110000; // JVRead: ãƒ‡ãƒ¼ã‚¿æ ¼ç´ãƒãƒƒãƒ•ァサイズ
198 var nNameSize = 256; // JVRead: ファイルåサイズ
199 var strBuff = new string('\0', nBuffSize); // JVRead: ãƒ‡ãƒ¼ã‚¿æ ¼ç´ãƒãƒƒãƒ•ã‚¡
200 var strFileName = new string('\0', nNameSize); // JVRead: èªã¿è¾¼ã¿ä¸ãƒ•ァイルå
201 var RaceInfo = new JVData_Struct.JV_RA_RACE(); // ãƒ¬ãƒ¼ã‚¹è©³ç´°æƒ…å ±æ§‹é€ ä½“
202 //var RaceUmaInfo = new JVData_Struct.JV_SE_RACE_UMA(); // é¦¬æ¯Žãƒ¬ãƒ¼ã‚¹æƒ…å ±æ§‹é€ ä½“
203
204 bool flg_exit = false;
205 do
206 {
207 switch (jvLink.JVRead(out strBuff, out nBuffSize, out strFileName))
208 {
209 case 0: // 全ファイルèªã¿è¾¼ã¿çµ‚了
210 prgDownload.Value = prgDownload.Maximum;
211 prgJVRead.Value = prgJVRead.Maximum;
212 Console.WriteLine("全ファイルèªã¿è¾¼ã¿çµ‚了: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
213 flg_exit = true;
214 break;
215 case -1: // ファイル切り替ã‚り
216 prgJVRead.Value = prgJVRead.Value + 1;
217 Console.WriteLine("ファイル切り替ã‚り: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
218 break;
219 case -3: // ダウンãƒãƒ¼ãƒ‰ä¸
220 prgDownload.Value = jvLink.JVStatus();
221 Console.WriteLine("ダウンãƒãƒ¼ãƒ‰ä¸: " + prgDownload.Value + " / " + prgDownload.Maximum + "\n");
222 break;
223 case -201: // JVInit ã•れã¦ãªã„
224 Console.WriteLine("JVInit ãŒè¡Œã‚れã¦ã„ã¾ã›ã‚“。");
225 flg_exit = true;
226 break;
227 case -203: // JVOpen ã•れã¦ãªã„
228 Console.WriteLine("JVOpen ãŒè¡Œã‚れã¦ã„ã¾ã›ã‚“。");
229 flg_exit = true;
230 break;
231 case -503: // ファイルãŒãªã„
232 Console.WriteLine(strFileName + "ãŒå˜åœ¨ã—ã¾ã›ã‚“。");
233 flg_exit = true;
234 break;
235 case int ret when ret > 0:
236 if (strBuff.Substring(0, 2) == "RA")
237 {
238 RaceInfo.SetDataB(ref strBuff);
239 basADOUtility.SetJVDataRaceDataSet(RaceInfo, dataSet);
240 }
241 //else if (strBuff.Substring(0, 2) == "SE")
242 //{
243 // RaceUmaInfo.SetDataB(ref strBuff);
244 // basADOUtility.SetJVDataRaceUmaDataSet(RaceUmaInfo, dataSet2);
245 //}
246 else
247 {
248 // èªã¿é£›ã°ã—
249 jvLink.JVSkip();
250 prgJVRead.Value = prgJVRead.Value + 1;
251 Console.WriteLine("èªã¿é£›ã°ã—: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
252 }
253 break;
254 }
255 }
256 while (!flg_exit);
257
258 // コマンド自動作æˆ
259 var cb = new SQLiteCommandBuilder(dataAdapter);
260
261 // ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã®æ›´æ–°
262 Console.WriteLine("データ書ãè¾¼ã¿ä¸ãƒ»ãƒ»ãƒ»\n");
263 dataAdapter.Update(dataSet, "RACE");
264
265 //=====================================================================================
266 jvLink.JVClose();
267
268 //=====================================================================================
269 Console.WriteLine("終了ã§ã™ã€‚何ã‹ã‚ーを押ã—ã¦ãã ã•ã„。\n");
270 Console.ReadKey();
271 }
272 }
273}