チケット #48141

株価更新の処理が失敗してしまう

登録: 2023-06-02 16:53 最終更新: 2023-06-05 22:11

報告者:
(匿名)
担当者:
チケットの種類:
状況:
完了
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

いつも管理していただきありがとうございます。
以下に詳細内容を記載しました。

■現象
株価更新をしようとすると、処理途中で例外エラーが発生してしまう。

■原因とエラー箇所
銘柄情報(index.txt)のダウンロード処理は正常に完了します。
続いて、その再読み込み処理内( BrandData.cs/Load() )で、株数(文字列)をintに変換する際に、空文字をintにキャストしようとして例外エラーが出るみたいです。

http://protra.sourceforge.jp/data/index.txt.lzh」

のテキスト内容

date=20230601
0,,, ★←ここです。
1301,極洋,TP,100,S:20160928:0.1
1305,iFreeETF TOPIX(年1回決算型),T,10

~(省略)~


(※ソースコードタブのリポジトリは、見えませんでしたのでリンク無し)
Protra.Lib.Data.BrandData.cs

  1. public void Load()
  2. {
  3. ~(省略)~
  4. reader.ReadLine(); // @dateを読み飛ばす。
  5. string line;
  6. while ((line = reader.ReadLine()) != null)
  7. {
  8. var entries = line.Split(',');
  9. var brand = new Brand
  10. {
  11. Code = entries[0],
  12. Name = entries[1].Replace("ホールディングス", "HD"),
  13. Market = entries[2],
  14. Unit = int.Parse(entries[3]) ★←ここです。
  15. };
  16. ~(省略)~



■対応A
ユーザー側で毎回 index.txt を手動修正する。
一回目の株価更新処理を行った後で、銘柄コード0の1行を削除して上書き保存します。
再度、株価更新処理を行うことで、各銘柄の株価データの更新から始まるのでうまくいきます。

■対応B
不正な銘柄情報の場合は無視するように、ソースコード修正をおこないます。

Protra.Lib.Data.BrandData.cs

  1. public void Load()
  2. {
  3. ~(省略)~
  4. var entries = line.Split(',');
  5. if (entries.Any(x => string.IsNullOrWhiteSpace(x))) ★←ここです。if 文で entries[3] が空だったら無視とかでもいいと思いました。
  6. continue;
  7. var brand = new Brand
  8. {
  9. Code = entries[0],
  10. Name = entries[1].Replace("ホールディングス", "HD"),
  11. Market = entries[2],
  12. Unit = int.Parse(entries[3])
  13. };
  14. ~(省略)~



以上、お知らせでした。
もしも、私の環境だけで出る現象でしたらすみません。

チケットの履歴 (4 件中 3 件表示)

2023-06-02 16:53 更新者: None
  • 新しいチケット "株価更新の処理が失敗してしまう" が作成されました
2023-06-02 22:19 更新者: panacoran
コメント

連絡ありがとうございます。

index.txtの生成ミスでゴミが入っていたので直しました。

2023-06-05 19:12 更新者: None
コメント

更新処理が無事に完了しましたし、
index.txt の不正データも含まれていないことを確認できました。
ご対応ありがとうございました!

2023-06-05 22:11 更新者: panacoran
  • 状況オープン から 完了 に更新されました
  • 担当者(未割り当て) から panacoran に更新されました
  • 解決法なし から 修正済み に更新されました

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする