思わぬところとは、考えが足りなかったという事になるのだが。
昨夜Lotoプログラムのテスト中に、当せん番号を取得でエラーになった。
このエラーはダウンロードのデータをベリファイというか、ごく簡単に検査する部分で見つかった。
「当せん番号の取得に失敗しました」のメッセージが出た時には、何が起きたのか見当がつかなかった。
調べると、Webからダウンロードは出来ていてファイルへの出力も正常に完了している。
そしてファイルの中身を見ると、別段あやしい所もなく正常に見える。
あれこれ考えながら、コードをステップで進めると確かに異常になっている。
ファイルに書き出されたデータに異常はないのだが・・・
しかし、このように勝手に異常がないと思い込んでしまうのが、一番の悪いところ。
データに異常があるからこそベリファイで異常を検出しているのに、検査方法が悪いのかと疑って。
自分で間違いないと思って作った検査なのに、それを疑いだしたらキリがない。
それに順序としては、データに誤りがないか徹底的に調べるのが先なのに。
ーーーーーーーーーー
そして、エラーの原因を突き止めた。
昨日が何の日か、4月1日である・・・
なるほど、やっと判った。
プログラムは、ロトのミニ、6、7の3つの当せん番号をみずほ銀行からダウンロードする仕様。
昨日のエラーは、ロト6の当せん番号取得で発生した。
他のミニと7のダウンロードは試していないが、明らかに6は異常が発生する原因があった。
それは、日付であり曜日である。
月の変わり目に、新たな月が始まってから抽選が行われていない日に発生する事が判った。
昨日の4月1日は金曜日、ロト6の抽選は月曜と木曜で、4月になってからの抽選は行われていない。
ここに書いたように、
http://yuz1.blog.shinobi.jp/Entry/1945/ 三段階のダウンロードである。
初回から一年前のダウンロードが第一段階。
第二段階は、去年分の扱いで先月分までのダウンロード。
そして、直近一ヶ月のダウンロードで全てが完了する。
ここで、今回のように月初で直近の当せん番号が存在しないとどうなるか?
その時にWebページに今月分は無いよとメッセージでもあれば良かったのだが・・・
ところが、先月分の当せん番号が直近のページに表示されていた。
これが直近の当せん番号ページで、下が先月のページである。
パッと見は同じだが一箇所の違いがある。
直近のページには上の方に更新日が表示されているが、他は同じ内容である。
先月分と直近の今月分が同じなら、ダウンロードしたデータは最後の一月分が重複する事になる。
実際に今回は、1050回~1058回までの9回分を重複してダウンロードしていた。
いい加減な気持ちで出力ファイルを眺めていたので、最後の9回分の重複に気づかなかった。
なにしろ数字ばかり並んでいるので、先頭からダァーっと眺めただけでは・・・
ともかく、こうしたいい加減な人間が作った検査部分が、まともに働いて自分の過ちを見つけたからエライ。
何がエライのか、誰がエライのかなんとも言えないようだが。