· 7 years ago · Sep 23, 2018, 11:38 AM
1using System;
2using System.Data;
3using System.Data.SQLite;
4using System.Linq;
5using System.Text;
6
7public class VBStrings
8{
9 public static string MidB(string stTarget, int iStart, int iByteSize)
10 {
11 System.Text.Encoding hEncoding = System.Text.Encoding.GetEncoding("Shift_JIS");
12 byte[] btBytes = hEncoding.GetBytes(stTarget);
13
14 return hEncoding.GetString(btBytes, iStart, iByteSize);
15 }
16}
17public static class SQLiteExtension
18{
19 public static int SetJVData_Race(this SQLiteCommand command, string buff)
20 {
21 command.CommandText =
22 @"INSERT OR REPLACE INTO
23 RACE(
24 RecordSpec,
25 DataKubun,
26 MakeDate,
27 Year,
28 MonthDay,
29 JyoCD,
30 Kaiji,
31 Nichiji,
32 RaceNum,
33 YoubiCD,
34 TokuNum,
35 Hondai,
36 Fukudai,
37 Kakko,
38 HondaiEng,
39 FukudaiEng,
40 KakkoEng,
41 Ryakusyo10,
42 Ryakusyo6,
43 Ryakusyo3,
44 Kubun,
45 Nkai,
46 GradeCD,
47 GradeCDBefore,
48 SyubetuCD,
49 KigoCD,
50 JyuryoCD,
51 JyokenCD1,
52 JyokenCD2,
53 JyokenCD3,
54 JyokenCD4,
55 JyokenCD5,
56 JyokenName,
57 Kyori,
58 KyoriBefore,
59 TrackCD,
60 TrackCDBefore,
61 CourseKubunCD,
62 CourseKubunCDBefore,
63 Honsyokin1,
64 Honsyokin2,
65 Honsyokin3,
66 Honsyokin4,
67 Honsyokin5,
68 Honsyokin6,
69 Honsyokin7,
70 HonsyokinBefore1,
71 HonsyokinBefore2,
72 HonsyokinBefore3,
73 HonsyokinBefore4,
74 HonsyokinBefore5,
75 Fukasyokin1,
76 Fukasyokin2,
77 Fukasyokin3,
78 Fukasyokin4,
79 Fukasyokin5,
80 FukasyokinBefore1,
81 FukasyokinBefore2,
82 FukasyokinBefore3,
83 HassoTime,
84 HassoTimeBefore,
85 TorokuTosu,
86 SyussoTosu,
87 NyusenTosu,
88 TenkoCD,
89 SibaBabaCD,
90 DirtBabaCD,
91 LapTime1,
92 LapTime2,
93 LapTime3,
94 LapTime4,
95 LapTime5,
96 LapTime6,
97 LapTime7,
98 LapTime8,
99 LapTime9,
100 LapTime10,
101 LapTime11,
102 LapTime12,
103 LapTime13,
104 LapTime14,
105 LapTime15,
106 LapTime16,
107 LapTime17,
108 LapTime18,
109 LapTime19,
110 LapTime20,
111 LapTime21,
112 LapTime22,
113 LapTime23,
114 LapTime24,
115 LapTime25,
116 SyogaiMileTime,
117 HaronTimeS3,
118 HaronTimeS4,
119 HaronTimeL3,
120 HaronTimeL4,
121 Corner1,
122 Syukaisu1,
123 Jyuni1,
124 Corner2,
125 Syukaisu2,
126 Jyuni2,
127 Corner3,
128 Syukaisu3,
129 Jyuni3,
130 Corner4,
131 Syukaisu4,
132 Jyuni4,
133 RecordUpKubun
134 )
135 VALUES(
136 @RecordSpec,
137 @DataKubun,
138 @MakeDate,
139 @Year,
140 @MonthDay,
141 @JyoCD,
142 @Kaiji,
143 @Nichiji,
144 @RaceNum,
145 @YoubiCD,
146 @TokuNum,
147 @Hondai,
148 @Fukudai,
149 @Kakko,
150 @HondaiEng,
151 @FukudaiEng,
152 @KakkoEng,
153 @Ryakusyo10,
154 @Ryakusyo6,
155 @Ryakusyo3,
156 @Kubun,
157 @Nkai,
158 @GradeCD,
159 @GradeCDBefore,
160 @SyubetuCD,
161 @KigoCD,
162 @JyuryoCD,
163 @JyokenCD1,
164 @JyokenCD2,
165 @JyokenCD3,
166 @JyokenCD4,
167 @JyokenCD5,
168 @JyokenName,
169 @Kyori,
170 @KyoriBefore,
171 @TrackCD,
172 @TrackCDBefore,
173 @CourseKubunCD,
174 @CourseKubunCDBefore,
175 @Honsyokin1,
176 @Honsyokin2,
177 @Honsyokin3,
178 @Honsyokin4,
179 @Honsyokin5,
180 @Honsyokin6,
181 @Honsyokin7,
182 @HonsyokinBefore1,
183 @HonsyokinBefore2,
184 @HonsyokinBefore3,
185 @HonsyokinBefore4,
186 @HonsyokinBefore5,
187 @Fukasyokin1,
188 @Fukasyokin2,
189 @Fukasyokin3,
190 @Fukasyokin4,
191 @Fukasyokin5,
192 @FukasyokinBefore1,
193 @FukasyokinBefore2,
194 @FukasyokinBefore3,
195 @HassoTime,
196 @HassoTimeBefore,
197 @TorokuTosu,
198 @SyussoTosu,
199 @NyusenTosu,
200 @TenkoCD,
201 @SibaBabaCD,
202 @DirtBabaCD,
203 @LapTime1,
204 @LapTime2,
205 @LapTime3,
206 @LapTime4,
207 @LapTime5,
208 @LapTime6,
209 @LapTime7,
210 @LapTime8,
211 @LapTime9,
212 @LapTime10,
213 @LapTime11,
214 @LapTime12,
215 @LapTime13,
216 @LapTime14,
217 @LapTime15,
218 @LapTime16,
219 @LapTime17,
220 @LapTime18,
221 @LapTime19,
222 @LapTime20,
223 @LapTime21,
224 @LapTime22,
225 @LapTime23,
226 @LapTime24,
227 @LapTime25,
228 @SyogaiMileTime,
229 @HaronTimeS3,
230 @HaronTimeS4,
231 @HaronTimeL3,
232 @HaronTimeL4,
233 @Corner1,
234 @Syukaisu1,
235 @Jyuni1,
236 @Corner2,
237 @Syukaisu2,
238 @Jyuni2,
239 @Corner3,
240 @Syukaisu3,
241 @Jyuni3,
242 @Corner4,
243 @Syukaisu4,
244 @Jyuni4,
245 @RecordUpKubun
246 )";
247
248 command.Parameters.Add(new SQLiteParameter("@RecordSpec", VBStrings.MidB(buff, 0, 2)));
249 command.Parameters.Add(new SQLiteParameter("@DataKubun", VBStrings.MidB(buff, 2, 1)));
250 command.Parameters.Add(new SQLiteParameter("@MakeDate", VBStrings.MidB(buff, 3, 8)));
251 command.Parameters.Add(new SQLiteParameter("@Year", VBStrings.MidB(buff, 11, 4)));
252 command.Parameters.Add(new SQLiteParameter("@MonthDay", VBStrings.MidB(buff, 15, 4)));
253 command.Parameters.Add(new SQLiteParameter("@JyoCD", VBStrings.MidB(buff, 19, 2)));
254 command.Parameters.Add(new SQLiteParameter("@Kaiji", VBStrings.MidB(buff, 21, 2)));
255 command.Parameters.Add(new SQLiteParameter("@Nichiji", VBStrings.MidB(buff, 23, 2)));
256 command.Parameters.Add(new SQLiteParameter("@RaceNum", VBStrings.MidB(buff, 25, 2)));
257 command.Parameters.Add(new SQLiteParameter("@YoubiCD", VBStrings.MidB(buff, 27, 1)));
258 command.Parameters.Add(new SQLiteParameter("@TokuNum", VBStrings.MidB(buff, 28, 4)));
259 command.Parameters.Add(new SQLiteParameter("@Hondai", VBStrings.MidB(buff, 32, 60)));
260 command.Parameters.Add(new SQLiteParameter("@Fukudai", VBStrings.MidB(buff, 92, 60)));
261 command.Parameters.Add(new SQLiteParameter("@Kakko", VBStrings.MidB(buff, 152, 60)));
262 command.Parameters.Add(new SQLiteParameter("@HondaiEng", VBStrings.MidB(buff, 212, 120)));
263 command.Parameters.Add(new SQLiteParameter("@FukudaiEng", VBStrings.MidB(buff, 332, 120)));
264 command.Parameters.Add(new SQLiteParameter("@KakkoEng", VBStrings.MidB(buff, 452, 120)));
265 command.Parameters.Add(new SQLiteParameter("@Ryakusyo10", VBStrings.MidB(buff, 572, 20)));
266 command.Parameters.Add(new SQLiteParameter("@Ryakusyo6", VBStrings.MidB(buff, 592, 12)));
267 command.Parameters.Add(new SQLiteParameter("@Ryakusyo3", VBStrings.MidB(buff, 604, 6)));
268 command.Parameters.Add(new SQLiteParameter("@Kubun", VBStrings.MidB(buff, 610, 1)));
269 command.Parameters.Add(new SQLiteParameter("@Nkai", VBStrings.MidB(buff, 611, 3)));
270 command.Parameters.Add(new SQLiteParameter("@GradeCD", VBStrings.MidB(buff, 614, 1)));
271 command.Parameters.Add(new SQLiteParameter("@GradeCDBefore", VBStrings.MidB(buff, 615, 1)));
272 command.Parameters.Add(new SQLiteParameter("@SyubetuCD", VBStrings.MidB(buff, 616, 2)));
273 command.Parameters.Add(new SQLiteParameter("@KigoCD", VBStrings.MidB(buff, 618, 3)));
274 command.Parameters.Add(new SQLiteParameter("@JyuryoCD", VBStrings.MidB(buff, 621, 1)));
275 command.Parameters.Add(new SQLiteParameter("@JyokenCD1", VBStrings.MidB(buff, 622, 3)));
276 command.Parameters.Add(new SQLiteParameter("@JyokenCD2", VBStrings.MidB(buff, 625, 3)));
277 command.Parameters.Add(new SQLiteParameter("@JyokenCD3", VBStrings.MidB(buff, 628, 3)));
278 command.Parameters.Add(new SQLiteParameter("@JyokenCD4", VBStrings.MidB(buff, 631, 3)));
279 command.Parameters.Add(new SQLiteParameter("@JyokenCD5", VBStrings.MidB(buff, 634, 3)));
280 command.Parameters.Add(new SQLiteParameter("@JyokenName", VBStrings.MidB(buff, 637, 60)));
281 command.Parameters.Add(new SQLiteParameter("@Kyori", VBStrings.MidB(buff, 697, 4)));
282 command.Parameters.Add(new SQLiteParameter("@KyoriBefore", VBStrings.MidB(buff, 701, 4)));
283 command.Parameters.Add(new SQLiteParameter("@TrackCD", VBStrings.MidB(buff, 705, 2)));
284 command.Parameters.Add(new SQLiteParameter("@TrackCDBefore", VBStrings.MidB(buff, 707, 2)));
285 command.Parameters.Add(new SQLiteParameter("@CourseKubunCD", VBStrings.MidB(buff, 709, 2)));
286 command.Parameters.Add(new SQLiteParameter("@CourseKubunCDBefore", VBStrings.MidB(buff, 711, 2)));
287 command.Parameters.Add(new SQLiteParameter("@Honsyokin1", VBStrings.MidB(buff, 713, 8)));
288 command.Parameters.Add(new SQLiteParameter("@Honsyokin2", VBStrings.MidB(buff, 721, 8)));
289 command.Parameters.Add(new SQLiteParameter("@Honsyokin3", VBStrings.MidB(buff, 729, 8)));
290 command.Parameters.Add(new SQLiteParameter("@Honsyokin4", VBStrings.MidB(buff, 737, 8)));
291 command.Parameters.Add(new SQLiteParameter("@Honsyokin5", VBStrings.MidB(buff, 745, 8)));
292 command.Parameters.Add(new SQLiteParameter("@Honsyokin6", VBStrings.MidB(buff, 753, 8)));
293 command.Parameters.Add(new SQLiteParameter("@Honsyokin7", VBStrings.MidB(buff, 761, 8)));
294 command.Parameters.Add(new SQLiteParameter("@HonsyokinBefore1", VBStrings.MidB(buff, 769, 8)));
295 command.Parameters.Add(new SQLiteParameter("@HonsyokinBefore2", VBStrings.MidB(buff, 777, 8)));
296 command.Parameters.Add(new SQLiteParameter("@HonsyokinBefore3", VBStrings.MidB(buff, 785, 8)));
297 command.Parameters.Add(new SQLiteParameter("@HonsyokinBefore4", VBStrings.MidB(buff, 793, 8)));
298 command.Parameters.Add(new SQLiteParameter("@HonsyokinBefore5", VBStrings.MidB(buff, 801, 8)));
299 command.Parameters.Add(new SQLiteParameter("@Fukasyokin1", VBStrings.MidB(buff, 809, 8)));
300 command.Parameters.Add(new SQLiteParameter("@Fukasyokin2", VBStrings.MidB(buff, 817, 8)));
301 command.Parameters.Add(new SQLiteParameter("@Fukasyokin3", VBStrings.MidB(buff, 825, 8)));
302 command.Parameters.Add(new SQLiteParameter("@Fukasyokin4", VBStrings.MidB(buff, 833, 8)));
303 command.Parameters.Add(new SQLiteParameter("@Fukasyokin5", VBStrings.MidB(buff, 841, 8)));
304 command.Parameters.Add(new SQLiteParameter("@FukasyokinBefore1", VBStrings.MidB(buff, 849, 8)));
305 command.Parameters.Add(new SQLiteParameter("@FukasyokinBefore2", VBStrings.MidB(buff, 857, 8)));
306 command.Parameters.Add(new SQLiteParameter("@FukasyokinBefore3", VBStrings.MidB(buff, 865, 8)));
307 command.Parameters.Add(new SQLiteParameter("@HassoTime", VBStrings.MidB(buff, 873, 4)));
308 command.Parameters.Add(new SQLiteParameter("@HassoTimeBefore", VBStrings.MidB(buff, 877, 4)));
309 command.Parameters.Add(new SQLiteParameter("@TorokuTosu", VBStrings.MidB(buff, 881, 2)));
310 command.Parameters.Add(new SQLiteParameter("@SyussoTosu", VBStrings.MidB(buff, 883, 2)));
311 command.Parameters.Add(new SQLiteParameter("@NyusenTosu", VBStrings.MidB(buff, 885, 2)));
312 command.Parameters.Add(new SQLiteParameter("@TenkoCD", VBStrings.MidB(buff, 887, 1)));
313 command.Parameters.Add(new SQLiteParameter("@SibaBabaCD", VBStrings.MidB(buff, 888, 1)));
314 command.Parameters.Add(new SQLiteParameter("@DirtBabaCD", VBStrings.MidB(buff, 889, 1)));
315 command.Parameters.Add(new SQLiteParameter("@LapTime1", VBStrings.MidB(buff, 890, 3)));
316 command.Parameters.Add(new SQLiteParameter("@LapTime2", VBStrings.MidB(buff, 893, 3)));
317 command.Parameters.Add(new SQLiteParameter("@LapTime3", VBStrings.MidB(buff, 896, 3)));
318 command.Parameters.Add(new SQLiteParameter("@LapTime4", VBStrings.MidB(buff, 899, 3)));
319 command.Parameters.Add(new SQLiteParameter("@LapTime5", VBStrings.MidB(buff, 902, 3)));
320 command.Parameters.Add(new SQLiteParameter("@LapTime6", VBStrings.MidB(buff, 905, 3)));
321 command.Parameters.Add(new SQLiteParameter("@LapTime7", VBStrings.MidB(buff, 908, 3)));
322 command.Parameters.Add(new SQLiteParameter("@LapTime8", VBStrings.MidB(buff, 911, 3)));
323 command.Parameters.Add(new SQLiteParameter("@LapTime9", VBStrings.MidB(buff, 914, 3)));
324 command.Parameters.Add(new SQLiteParameter("@LapTime10", VBStrings.MidB(buff, 917, 3)));
325 command.Parameters.Add(new SQLiteParameter("@LapTime11", VBStrings.MidB(buff, 920, 3)));
326 command.Parameters.Add(new SQLiteParameter("@LapTime12", VBStrings.MidB(buff, 923, 3)));
327 command.Parameters.Add(new SQLiteParameter("@LapTime13", VBStrings.MidB(buff, 926, 3)));
328 command.Parameters.Add(new SQLiteParameter("@LapTime14", VBStrings.MidB(buff, 929, 3)));
329 command.Parameters.Add(new SQLiteParameter("@LapTime15", VBStrings.MidB(buff, 932, 3)));
330 command.Parameters.Add(new SQLiteParameter("@LapTime16", VBStrings.MidB(buff, 935, 3)));
331 command.Parameters.Add(new SQLiteParameter("@LapTime17", VBStrings.MidB(buff, 938, 3)));
332 command.Parameters.Add(new SQLiteParameter("@LapTime18", VBStrings.MidB(buff, 941, 3)));
333 command.Parameters.Add(new SQLiteParameter("@LapTime19", VBStrings.MidB(buff, 944, 3)));
334 command.Parameters.Add(new SQLiteParameter("@LapTime20", VBStrings.MidB(buff, 947, 3)));
335 command.Parameters.Add(new SQLiteParameter("@LapTime21", VBStrings.MidB(buff, 950, 3)));
336 command.Parameters.Add(new SQLiteParameter("@LapTime22", VBStrings.MidB(buff, 953, 3)));
337 command.Parameters.Add(new SQLiteParameter("@LapTime23", VBStrings.MidB(buff, 956, 3)));
338 command.Parameters.Add(new SQLiteParameter("@LapTime24", VBStrings.MidB(buff, 959, 3)));
339 command.Parameters.Add(new SQLiteParameter("@LapTime25", VBStrings.MidB(buff, 962, 3)));
340 command.Parameters.Add(new SQLiteParameter("@SyogaiMileTime", VBStrings.MidB(buff, 965, 4)));
341 command.Parameters.Add(new SQLiteParameter("@HaronTimeS3", VBStrings.MidB(buff, 969, 3)));
342 command.Parameters.Add(new SQLiteParameter("@HaronTimeS4", VBStrings.MidB(buff, 972, 3)));
343 command.Parameters.Add(new SQLiteParameter("@HaronTimeL3", VBStrings.MidB(buff, 975, 3)));
344 command.Parameters.Add(new SQLiteParameter("@HaronTimeL4", VBStrings.MidB(buff, 978, 3)));
345 command.Parameters.Add(new SQLiteParameter("@Corner1", VBStrings.MidB(buff, 981, 1)));
346 command.Parameters.Add(new SQLiteParameter("@Syukaisu1", VBStrings.MidB(buff, 982, 1)));
347 command.Parameters.Add(new SQLiteParameter("@Jyuni1", VBStrings.MidB(buff, 983, 70)));
348 command.Parameters.Add(new SQLiteParameter("@Corner2", VBStrings.MidB(buff, 1053, 1)));
349 command.Parameters.Add(new SQLiteParameter("@Syukaisu2", VBStrings.MidB(buff, 1054, 1)));
350 command.Parameters.Add(new SQLiteParameter("@Jyuni2", VBStrings.MidB(buff, 1055, 70)));
351 command.Parameters.Add(new SQLiteParameter("@Corner3", VBStrings.MidB(buff, 1125, 1)));
352 command.Parameters.Add(new SQLiteParameter("@Syukaisu3", VBStrings.MidB(buff, 1126, 1)));
353 command.Parameters.Add(new SQLiteParameter("@Jyuni3", VBStrings.MidB(buff, 1127, 70)));
354 command.Parameters.Add(new SQLiteParameter("@Corner4", VBStrings.MidB(buff, 1197, 1)));
355 command.Parameters.Add(new SQLiteParameter("@Syukaisu4", VBStrings.MidB(buff, 1198, 1)));
356 command.Parameters.Add(new SQLiteParameter("@Jyuni4", VBStrings.MidB(buff, 1199, 70)));
357 command.Parameters.Add(new SQLiteParameter("@RecordUpKubun", VBStrings.MidB(buff, 1269, 1)));
358
359 return command.ExecuteNonQuery();
360 }
361}
362namespace ConsoleTest
363{
364 class Program
365 {
366
367 #region RACE テーブル作æˆç”¨ SQL
368 const string sqlTableCreate_RACE =
369 "CREATE TABLE IF NOT EXISTS RACE (" +
370 "RecordSpec CHAR(2)," +
371 "DataKubun CHAR(1)," +
372 "MakeDate CHAR(8)," +
373 "Year CHAR(4)," +
374 "MonthDay CHAR(4)," +
375 "JyoCD CHAR(2)," +
376 "Kaiji CHAR(2)," +
377 "Nichiji CHAR(2)," +
378 "RaceNum CHAR(2)," +
379 "YoubiCD CHAR(1)," +
380 "TokuNum CHAR(4)," +
381 "Hondai CHAR(60)," +
382 "Fukudai CHAR(60)," +
383 "Kakko CHAR(60)," +
384 "HondaiEng CHAR(120)," +
385 "FukudaiEng CHAR(120)," +
386 "KakkoEng CHAR(120)," +
387 "Ryakusyo10 CHAR(20)," +
388 "Ryakusyo6 CHAR(12)," +
389 "Ryakusyo3 CHAR(6)," +
390 "Kubun CHAR(1)," +
391 "Nkai CHAR(3)," +
392 "GradeCD CHAR(1)," +
393 "GradeCDBefore CHAR(1)," +
394 "SyubetuCD CHAR(2)," +
395 "KigoCD CHAR(3)," +
396 "JyuryoCD CHAR(1)," +
397 "JyokenCD1 CHAR(3)," +
398 "JyokenCD2 CHAR(3)," +
399 "JyokenCD3 CHAR(3)," +
400 "JyokenCD4 CHAR(3)," +
401 "JyokenCD5 CHAR(3)," +
402 "JyokenName CHAR(60)," +
403 "Kyori CHAR(4)," +
404 "KyoriBefore CHAR(4)," +
405 "TrackCD CHAR(2)," +
406 "TrackCDBefore CHAR(2)," +
407 "CourseKubunCD CHAR(2)," +
408 "CourseKubunCDBefore CHAR(2)," +
409 "Honsyokin1 CHAR(8)," +
410 "Honsyokin2 CHAR(8)," +
411 "Honsyokin3 CHAR(8)," +
412 "Honsyokin4 CHAR(8)," +
413 "Honsyokin5 CHAR(8)," +
414 "Honsyokin6 CHAR(8)," +
415 "Honsyokin7 CHAR(8)," +
416 "HonsyokinBefore1 CHAR(8)," +
417 "HonsyokinBefore2 CHAR(8)," +
418 "HonsyokinBefore3 CHAR(8)," +
419 "HonsyokinBefore4 CHAR(8)," +
420 "HonsyokinBefore5 CHAR(8)," +
421 "Fukasyokin1 CHAR(8)," +
422 "Fukasyokin2 CHAR(8)," +
423 "Fukasyokin3 CHAR(8)," +
424 "Fukasyokin4 CHAR(8)," +
425 "Fukasyokin5 CHAR(8)," +
426 "FukasyokinBefore1 CHAR(8)," +
427 "FukasyokinBefore2 CHAR(8)," +
428 "FukasyokinBefore3 CHAR(8)," +
429 "HassoTime CHAR(4)," +
430 "HassoTimeBefore CHAR(4)," +
431 "TorokuTosu CHAR(2)," +
432 "SyussoTosu CHAR(2)," +
433 "NyusenTosu CHAR(2)," +
434 "TenkoCD CHAR(1)," +
435 "SibaBabaCD CHAR(1)," +
436 "DirtBabaCD CHAR(1)," +
437 "LapTime1 CHAR(3)," +
438 "LapTime2 CHAR(3)," +
439 "LapTime3 CHAR(3)," +
440 "LapTime4 CHAR(3)," +
441 "LapTime5 CHAR(3)," +
442 "LapTime6 CHAR(3)," +
443 "LapTime7 CHAR(3)," +
444 "LapTime8 CHAR(3)," +
445 "LapTime9 CHAR(3)," +
446 "LapTime10 CHAR(3)," +
447 "LapTime11 CHAR(3)," +
448 "LapTime12 CHAR(3)," +
449 "LapTime13 CHAR(3)," +
450 "LapTime14 CHAR(3)," +
451 "LapTime15 CHAR(3)," +
452 "LapTime16 CHAR(3)," +
453 "LapTime17 CHAR(3)," +
454 "LapTime18 CHAR(3)," +
455 "LapTime19 CHAR(3)," +
456 "LapTime20 CHAR(3)," +
457 "LapTime21 CHAR(3)," +
458 "LapTime22 CHAR(3)," +
459 "LapTime23 CHAR(3)," +
460 "LapTime24 CHAR(3)," +
461 "LapTime25 CHAR(3)," +
462 "SyogaiMileTime CHAR(4)," +
463 "HaronTimeS3 CHAR(3)," +
464 "HaronTimeS4 CHAR(3)," +
465 "HaronTimeL3 CHAR(3)," +
466 "HaronTimeL4 CHAR(3)," +
467 "Corner1 CHAR(1)," +
468 "Syukaisu1 CHAR(1)," +
469 "Jyuni1 CHAR(70)," +
470 "Corner2 CHAR(1)," +
471 "Syukaisu2 CHAR(1)," +
472 "Jyuni2 CHAR(70)," +
473 "Corner3 CHAR(1)," +
474 "Syukaisu3 CHAR(1)," +
475 "Jyuni3 CHAR(70)," +
476 "Corner4 CHAR(1)," +
477 "Syukaisu4 CHAR(1)," +
478 "Jyuni4 CHAR(70)," +
479 "RecordUpKubun CHAR(1)," +
480 "PRIMARY KEY(Year, MonthDay, JyoCD, Kaiji, Nichiji, RaceNum)" +
481 ")";
482 #endregion
483 struct ProgressBar
484 {
485 public int Maximum { set; get; }
486 public int Value { set; get; }
487 }
488 [STAThread]
489 static void Main(string[] args)
490 {
491 var prgDownload = new ProgressBar();
492 var prgJVRead = new ProgressBar();
493
494 //=====================================================================================
495 var qLiteConnection = new SQLiteConnection();
496 qLiteConnection.ConnectionString = "Data Source=JVData.sqlite;";
497
498 string[] sqlTables = { basADOUtility.sqlTableCreate_BAMEIORIGINE,
499 basADOUtility.sqlTableCreate_BANUSI,
500 basADOUtility.sqlTableCreate_BATAIJYU,
501 basADOUtility.sqlTableCreate_CHOKYO,
502 basADOUtility.sqlTableCreate_CHOKYO_SEISEKI,
503 basADOUtility.sqlTableCreate_CODE_TABLE,
504 basADOUtility.sqlTableCreate_COURSE,
505 basADOUtility.sqlTableCreate_COURSE_CHANGE,
506 basADOUtility.sqlTableCreate_HANRO,
507 basADOUtility.sqlTableCreate_HANSYOKU,
508 basADOUtility.sqlTableCreate_HARAI,
509 basADOUtility.sqlTableCreate_HASSOU_JIKOKU_CHANGE,
510 basADOUtility.sqlTableCreate_HYOSU,
511 basADOUtility.sqlTableCreate_HYOSU2,
512 basADOUtility.sqlTableCreate_HYOSU_SANREN,
513 basADOUtility.sqlTableCreate_HYOSU_SANRENTAN,
514 basADOUtility.sqlTableCreate_HYOSU_TANPUKU,
515 basADOUtility.sqlTableCreate_HYOSU_UMARENWIDE,
516 basADOUtility.sqlTableCreate_HYOSU_UMATAN,
517 basADOUtility.sqlTableCreate_HYOSU_WAKU,
518 basADOUtility.sqlTableCreate_JOGAIBA,
519 basADOUtility.sqlTableCreate_JYUSYOSIKI,
520 basADOUtility.sqlTableCreate_JYUSYOSIKI_HEAD,
521 basADOUtility.sqlTableCreate_KEITO,
522 basADOUtility.sqlTableCreate_KISYU,
523 basADOUtility.sqlTableCreate_KISYU_CHANGE,
524 basADOUtility.sqlTableCreate_KISYU_SEISEKI,
525 basADOUtility.sqlTableCreate_MINING,
526 basADOUtility.sqlTableCreate_ODDS_SANREN,
527 basADOUtility.sqlTableCreate_ODDS_SANRENTAN,
528 basADOUtility.sqlTableCreate_ODDS_SANRENTAN_HEAD,
529 basADOUtility.sqlTableCreate_ODDS_SANREN_HEAD,
530 basADOUtility.sqlTableCreate_ODDS_TANPUKU,
531 basADOUtility.sqlTableCreate_ODDS_TANPUKUWAKU_HEAD,
532 basADOUtility.sqlTableCreate_ODDS_UMAREN,
533 basADOUtility.sqlTableCreate_ODDS_UMAREN_HEAD,
534 basADOUtility.sqlTableCreate_ODDS_UMATAN,
535 basADOUtility.sqlTableCreate_ODDS_UMATAN_HEAD,
536 basADOUtility.sqlTableCreate_ODDS_WAKU,
537 basADOUtility.sqlTableCreate_ODDS_WIDE,
538 basADOUtility.sqlTableCreate_ODDS_WIDE_HEAD,
539 basADOUtility.sqlTableCreate_RACE,
540 basADOUtility.sqlTableCreate_RECORD,
541 basADOUtility.sqlTableCreate_SALE,
542 basADOUtility.sqlTableCreate_SANKU,
543 basADOUtility.sqlTableCreate_SCHEDULE,
544 basADOUtility.sqlTableCreate_SEISAN,
545 basADOUtility.sqlTableCreate_TAISENGATA_MINING,
546 basADOUtility.sqlTableCreate_TENKO_BABA,
547 basADOUtility.sqlTableCreate_TOKU,
548 basADOUtility.sqlTableCreate_TOKU_RACE,
549 basADOUtility.sqlTableCreate_TORIKESI_JYOGAI,
550 basADOUtility.sqlTableCreate_UMA,
551 basADOUtility.sqlTableCreate_UMA_RACE
552 };
553 var qCommand = qLiteConnection.CreateCommand();
554 qLiteConnection.Open();
555 foreach (var sql in sqlTables)
556 {
557 qCommand.CommandText = sql;
558 qCommand.ExecuteNonQuery();
559 }
560 qLiteConnection.Close();
561
562 //=====================================================================================
563 var jvLink = new JVDTLabLib.JVLink();
564
565 //=====================================================================================
566 jvLink.JVSetUIProperties();
567
568 //=====================================================================================
569 jvLink.JVInit("UNKNOWN");
570
571 //=====================================================================================
572 var sw = new System.Diagnostics.Stopwatch();
573 sw.Start();
574
575 //=====================================================================================
576 var nReadCount = 0; // JVOpen: ç·èªã¿è¾¼ã¿ãƒ•ァイル数
577 var nDownloadCount = 0; // JVOpen: ç·ãƒ€ã‚¦ãƒ³ãƒãƒ¼ãƒ‰ãƒ•ァイル数
578 var strLastFileTimestamp = ""; // JVOpen: 最新ファイルã®ã‚¿ã‚¤ãƒ スタンプ
579
580 //=====================================================================================
581 var nBuffSize = 110000; // JVRead: ãƒ‡ãƒ¼ã‚¿æ ¼ç´ãƒãƒƒãƒ•ァサイズ
582 var nNameSize = 256; // JVRead: ファイルåサイズ
583 var strBuff = new string('\0', nBuffSize); // JVRead: ãƒ‡ãƒ¼ã‚¿æ ¼ç´ãƒãƒƒãƒ•ã‚¡
584 var strFileName = new string('\0', nNameSize); // JVRead: èªã¿è¾¼ã¿ä¸ãƒ•ァイルå
585
586 var strLastFileName = "";
587
588 var set_count = 0;
589 var open_exit_flag = false;
590 do
591 {
592 var open_ret = jvLink.JVOpen("RACE", "20160101000000", 4, ref nReadCount, ref nDownloadCount, out strLastFileTimestamp);
593
594 Console.WriteLine(
595 "èªã¿è¾¼ã¿ãƒ•ァイル数 : " + nReadCount + "\n" +
596 "ダウンãƒãƒ¼ãƒ‰ãƒ•ァイル数 : " + nDownloadCount + "\n" +
597 "タイムスタンプ : " + strLastFileTimestamp + "\n"
598 );
599
600 if (nDownloadCount == 0)
601 {
602 prgDownload.Maximum = 100;
603 prgDownload.Value = 100;
604 }
605 else
606 {
607 prgDownload.Maximum = nDownloadCount;
608 prgDownload.Value = 0;
609 }
610 prgJVRead.Maximum = nReadCount;
611 prgJVRead.Value = 0;
612
613 var read_ret = jvLink.JVRead(out strBuff, out nBuffSize, out strFileName);
614
615 if (strLastFileName != "" && strLastFileName != strFileName)
616 {
617 do
618 {
619 jvLink.JVSkip();
620 prgJVRead.Value = prgJVRead.Value + 1;
621 Console.WriteLine("èªã¿é£›ã°ã—: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
622 read_ret = jvLink.JVRead(out strBuff, out nBuffSize, out strFileName);
623 }
624 while (strLastFileName != strFileName);
625
626 jvLink.JVSkip();
627 prgJVRead.Value = prgJVRead.Value + 1;
628 Console.WriteLine("èªã¿é£›ã°ã—: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
629 }
630
631 var read_exit_flag = false;
632 do
633 {
634 read_ret = jvLink.JVRead(out strBuff, out nBuffSize, out strFileName);
635 switch (read_ret)
636 {
637 case 0: // 全ファイルèªã¿è¾¼ã¿çµ‚了
638 prgDownload.Value = prgDownload.Maximum;
639 prgJVRead.Value = prgJVRead.Maximum;
640 Console.WriteLine("全ファイルèªã¿è¾¼ã¿çµ‚了: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
641 read_exit_flag = true;
642 open_exit_flag = true;
643 break;
644 case -1: // ファイル切り替ã‚り
645 prgJVRead.Value = prgJVRead.Value + 1;
646 Console.WriteLine(set_count + " ファイル切り替ã‚り: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
647 set_count++;
648 break;
649 case -3: // ダウンãƒãƒ¼ãƒ‰ä¸
650 prgDownload.Value = jvLink.JVStatus();
651 Console.WriteLine("ダウンãƒãƒ¼ãƒ‰ä¸: " + prgDownload.Value + " / " + prgDownload.Maximum + "\n");
652 break;
653 case -201: // JVInit ã•れã¦ãªã„
654 Console.WriteLine("JVInit ãŒè¡Œã‚れã¦ã„ã¾ã›ã‚“。");
655 read_exit_flag = true;
656 open_exit_flag = true;
657 break;
658 case -203: // JVOpen ã•れã¦ãªã„
659 Console.WriteLine("JVOpen ãŒè¡Œã‚れã¦ã„ã¾ã›ã‚“。");
660 read_exit_flag = true;
661 open_exit_flag = true;
662 break;
663 case -503: // ファイルãŒãªã„
664 Console.WriteLine(strFileName + "ãŒå˜åœ¨ã—ã¾ã›ã‚“。");
665 read_exit_flag = true;
666 open_exit_flag = true;
667 break;
668 case int ret when ret > 0:
669 if (strBuff.Substring(0, 2) == "RA")
670 {
671 qLiteConnection.Open();
672 qCommand.Transaction = qLiteConnection.BeginTransaction();
673 qCommand.SetJVData_Race(strBuff);
674 qCommand.Transaction.Commit();
675 qLiteConnection.Close();
676 }
677 //else if (strBuff.Substring(0, 2) == "SE")
678 //{
679 // RaceUmaInfo.SetDataB(ref strBuff);
680 // basADOUtility.SetJVData_RaceUma(RaceUmaInfo, dataSet);
681 //}
682 else
683 {
684 // èªã¿é£›ã°ã—
685 jvLink.JVSkip();
686 prgJVRead.Value = prgJVRead.Value + 1;
687 Console.WriteLine(set_count + " èªã¿é£›ã°ã—: " + prgJVRead.Value + " / " + prgJVRead.Maximum + "\n");
688 }
689 break;
690 }
691 if (set_count > 50)
692 {
693 read_exit_flag = true;
694 }
695 }
696 while (!read_exit_flag);
697
698 strLastFileName = strFileName;
699 set_count = 0;
700
701 jvLink.JVClose();
702 }
703 while (!open_exit_flag);
704
705 //=====================================================================================
706 sw.Stop();
707 TimeSpan ts = sw.Elapsed;
708 Console.WriteLine("■処ç†ã«ã‹ã‹ã£ãŸæ™‚é–“\n");
709 Console.WriteLine($" {ts.Hours}時間 {ts.Minutes}分 {ts.Seconds}秒 {ts.Milliseconds}ミリ秒");
710
711 //=====================================================================================
712 Console.WriteLine("終了ã§ã™ã€‚何ã‹ã‚ーを押ã—ã¦ãã ã•ã„。\n");
713 Console.ReadKey();
714 }
715 }
716}