• R/O
  • SSH
  • HTTPS

protra: Commit


Commit MetaInfo

Revision530 (tree)
Time2016-09-06 21:08:13
Authorpanacoran

Log Message

k-db.comのデータ形式の変更に対応する

* Protra.Lib/Update/KdbComUpdator.cs (KdbComUpdator.ParseLine): データ形式の変更に対応する。
(KdbComUpdator.ParseField): 空文字列を0として扱う。

Change Summary

Incremental Difference

--- protra/trunk/ChangeLog.txt (revision 529)
+++ protra/trunk/ChangeLog.txt (revision 530)
@@ -1,5 +1,12 @@
11 2016-09-06 panacoran <panacoran@users.osdn.me>
22
3+ k-db.comのデータ形式の変更に対応する
4+
5+ * Protra.Lib/Update/KdbComUpdator.cs (KdbComUpdator.ParseLine): データ形式の変更に対応する。
6+ (KdbComUpdator.ParseField): 空文字列を0として扱う。
7+
8+2016-09-06 panacoran <panacoran@users.osdn.me>
9+
310 無尽蔵の2015年以降のデータがZIP形式なのに対応する
411
512 * Protra.Lib/Update/MujinzouUpdator.cs (MujinzouUpdator.DownloadUrl): 2015年以降の拡張子をzipにする。
--- protra/trunk/Protra.Lib/Update/KdbComUpdator.cs (revision 529)
+++ protra/trunk/Protra.Lib/Update/KdbComUpdator.cs (revision 530)
@@ -180,10 +180,10 @@
180180 var r = new Price();
181181 try
182182 {
183- if (tokens.Length != 10 || tokens[0].Length != 6)
183+ if (tokens.Length != 9 || tokens[0].Length != 6)
184184 return null;
185185 r.Code = tokens[0].Substring(0, 4);
186- switch (tokens[1])
186+ switch (tokens[2])
187187 {
188188 case "市場":
189189 return null;
@@ -203,6 +203,9 @@
203203 case "東証1部外国":
204204 r.Market = "T1";
205205 break;
206+ case "東証2部外国":
207+ r.Market = "T2";
208+ break;
206209 case "大証":
207210 case "大証1部":
208211 r.Market = "O1";
@@ -235,11 +238,11 @@
235238 throw new ApplicationException(tokens[1] + ": 不明な市場名です。");
236239 }
237240 r.Date = date;
238- r.Open = (int)ParseField(tokens[4]);
239- r.High = (int)ParseField(tokens[5]);
240- r.Low = (int)ParseField(tokens[6]);
241- r.Close = (int)ParseField(tokens[7]);
242- r.Volume = ParseField(tokens[8]) / 1000;
241+ r.Open = (int)ParseField(tokens[3]);
242+ r.High = (int)ParseField(tokens[4]);
243+ r.Low = (int)ParseField(tokens[5]);
244+ r.Close = (int)ParseField(tokens[6]);
245+ r.Volume = ParseField(tokens[7]) / 1000;
243246 }
244247 catch (FormatException)
245248 {
@@ -250,8 +253,8 @@
250253
251254 private static double ParseField(string s)
252255 {
253- // 無効なフィールドを示す"-"を0として扱う。
254- if (s == "-")
256+ // 空文字列を0として扱う。
257+ if (s == "")
255258 return 0;
256259 // 指数の値に小数が含まれているのでdouble.Parseを利用する。
257260 return double.Parse(s);
Show on old repository browser