« 2007年7月 | トップページ | 2007年9月 »

2007年8月

ねずみの競馬予想 2007年8月26日(番外編)

8月26日 札幌、新潟、小倉のメインレース予想です。
表示はポイント上位5頭の順です。

---------------------------------------------------------------------
【札幌 9R 第2回キーンランドカップ(GⅢ) 芝1200m】

  2 ローレルゲレイロ    牡3   藤田伸二
 13 シンボリウエスト    セン7  古川吉洋
 14 クーヴェルチュール   牝3   横山典弘
 11 アグネスラズベリ    牝6   角田晃一
  4 ブラックバースピン   牡4   池添謙一

---------------------------------------------------------------------
【新潟11R 第43回農林水産省賞典 新潟記念(GⅢ) 芝2000m】

  2 アドマイヤモナーク   牡6   安藤勝己
  4 フェイトトリックス   牡6   中舘英二
 18 ユメノシルシ      牡5   吉田豊
  3 グレイトジャーニー   牡6   蛯名正義
  8 ニシノナースコール   牝5   北村宏司

---------------------------------------------------------------------
【小倉10R 阿蘇ステークス ダ1700m】

  1 サンライズキング    牡8   和田竜二
 11 エイシンロンバード   牡5   武豊
  8 オースミヘネシー    牡5   渡辺薫彦
  6 ラッキーブレイク    牡6   幸英明
  9 ヒーローアンセム    セン6  長谷川浩

(JRA-VANの成績データ配信後、3着以内での確定を赤文字で表示しています)

| | コメント (0) | トラックバック (0)

第2回 キーンランドカップ(GⅢ)、第43回 農林水産省賞典 新潟記念(GⅢ)予想

ホームページで第2回 キーンランドカップ(GⅢ)、第43回 農林水産省賞典 新潟記念(GⅢ)の予想を公開しました。

http://homepage2.nifty.com/rattrap/

| | コメント (0) | トラックバック (0)

ねずみの競馬予想 2007年8月25日(番外編)

中央競馬が通常とおり開催されるようになりました。
先週のテレビ、ラジオ放送の番組変更等で関係している方々の苦労を痛感しました。
それにしても「スーパー競馬」は、なんで休んだんだろう?特集番組でもやればよかったのに。
井崎さんの面白い話が聞きたかったよ。

8月25日 札幌、新潟、小倉のメインレース予想です。
表示はポイント上位5頭の順です。

---------------------------------------------------------------------
【札幌 9R 報知杯大雪ハンデキャップ ダ1700m】

 12 ピサノデイラニ     牡3   藤田伸二
  3 パピヨンシチー     牡4   津村明秀
  7 マイネルテセウス    牡4   安藤勝己
 13 ダブルブラザー     牡6   武幸四郎
  9 ソリッドエビデンス   牡6   小牧太

---------------------------------------------------------------------
【新潟11R 三面川特別 芝1800m】

  1 パーフェクトジョイ   牝4   後藤浩輝
  2 レインダンス      牝3   中舘英二
  5 ミスティックリバー   牝4   柴田善臣
  9 ラブカーナ       牝3   吉田隼人
 10 ヴァーチュ       牝5   蛯名正義

---------------------------------------------------------------------
【小倉10R TVQ杯 ダ1700m】

  9 クリーン        牡3   武豊
 10 パントマイミスト    牡6   和田竜二
  4 タカオセンチュリー   牡4   鮫島良太
  8 クリアヴィジョン    牡6   角田晃一
 11 クラリオンコール    牡6   熊沢重文

(JRA-VANのデータ配信後、3着以内での確定を赤文字で表示しています)

| | コメント (0) | トラックバック (0)

佐賀県立佐賀北高等学校に学べ!

佐賀北野球部、優勝おめでとう!公立高校の甲子園優勝という快挙にすごく感動しました。
かなり前に自分の通っていた都立高校の野球部は、小さいながらも専用グランドを与えられていたにもかかわらず
在校中3年間、都大会の予選で1回戦突破することはありませんでした。
今になって思えば、自分が通っていた高校の野球部員が朝練をしているような風景はほとんどなかったですね。
進学校である佐賀北高等学校は、文武両道ということで野球部員は朝から晩まで野球ばかりということは
なかったのではないでしょうか?
現在住んでいる近くにも立派なグランドと施設の整った私立高校があります。
朝から晩まで練習して一応シード校になっていますが、まだ甲子園の出場経験はありません。

今回の佐賀北高校の優勝によって、スゴイ選手ばかり集めてくる私立高校に負けてたまるか!
と思うような公立高校が増えることに期待したいです。
感動をありがとう!

| | コメント (0) | トラックバック (0)

8月25、26日の中央競馬開催決定

25、26日の中央競馬を通常とおり開催するとJRAホームページに書かれていました。
一時はどうなるかと思いましたが、何とか通常の週末に戻りそうです。
予想の検証をする時間は、ほとんどありませんでしたが、通常開催に戻ってよかったです。
詳しくはJRAホームページを見てください。

http://www.jra.go.jp/

| | コメント (0) | トラックバック (0)

馬インフルエンザによる中央競馬開催中止

馬インフルエンザの影響で8月18日(土)、8月19日(日)の中央競馬開催が中止になりました。
前回に馬インフルエンザが大流行した1971年には、約2ヶ月間も開催が中止されたそうです。
競馬が開催されないのは残念ですが、この機会に予想方法の検証をする良いチャンスかもしれません。

| | コメント (0) | トラックバック (0)

ねずみの競馬予想 2007年8月12日(番外編)

8月12日 札幌、新潟、小倉のメインレース予想です。
表示はポイント上位5頭の順です。

---------------------------------------------------------------------
【札幌 9R 第55回北海道新聞杯クイーンステークス(GⅢ) 芝1800m】

  5 アドマイヤキッス    牝4   川田将雅
  7 シェルズレイ      牝4   四位洋文
 10 デアリングハート    牝5   藤田伸二
  6 コスモプラチナ     牝4   安藤勝己
  1 アサヒライジング    牝4   柴田善臣

---------------------------------------------------------------------
【新潟11R 天の川ステークス 芝2000m】

  8 フサイチジャンク    牡4   後藤浩輝
 11 サクラオリオン     牡5   吉田稔
  5 タマモサポート     牡4   松岡正海
  1 シゲルドントイケ    牡6   吉田豊
  4 ドリームパートナー   セン7  北村宏司

---------------------------------------------------------------------
【小倉10R 第42回テレビ西日本賞北九州記念(GⅢ) 芝1200m】

  7 アストンマーチャン   牝3   岩田康誠
 14 ワイキューブ      牝4   荻野琢真
  1 メイショウトッパー   牡4   和田竜二
 11 サンアディユ      牝5   村田一誠
 10 カノヤザクラ      牝3   上村洋行

(JRA-VANの成績データ配信後、3着以内での確定を赤文字で表示しています)

| | コメント (0) | トラックバック (0)

第55回北海道新聞杯クイーンステークス(GⅢ)、第42回テレビ西日本賞北九州記念(GⅢ)予想

ホームページで第55回北海道新聞杯クイーンステークス(GⅢ)、
第42回テレビ西日本賞北九州記念(GⅢ)の予想を公開しました。

http://homepage2.nifty.com/rattrap/

本日2007年8月11日(土)からIPAT(パソコン)方式のログイン方法が変更になりました。
自分で簡単に投票できるように作成した投票支援ソフトのデバッグも終了しました。
ログイン後の処理に大幅な変更が無くてよかったです。
あとは、台風や降雪時のメッセージがログイン時にどのように表示されるか心配です。

| | コメント (0) | トラックバック (0)

ねずみの競馬予想 2007年8月11日(番外編)

8月11日 札幌、新潟、小倉のメインレース予想です。
表示はポイント上位5頭の順です。

---------------------------------------------------------------------
【札幌 9R 札幌日刊スポーツ杯 芝1200m】

 12 シンボリウエスト    セン7  岩田康誠
 11 ピクシーダスト     牝5   田中勝春
  3 タッチザピーク     牝4   池添謙一
 10 ラッシュライフ     牝4   四位洋文
  5 サムソンハッピー    牡9   藤岡佑介

---------------------------------------------------------------------
【新潟11R 瀬波温泉特別 ダ1800m】

  6 セプターレイン     牡5   中舘英二
  8 バンドマスター     牡5   木幡初広
  9 ジュークジョイント   牡6   柴田善臣
 10 シベリアンライオン   牡5   後藤浩輝
 15 エーピーチャージ    牡6   吉田隼人

---------------------------------------------------------------------
【小倉10R 西部スポニチ賞 芝1800m】

  7 リメインオブザサン   牡4   小牧太
  9 トップオブツヨシ    牡4   上村洋行
  8 ジョーファング     牡6   石橋守
  1 ウィングドフォース   牡5   太宰啓介
  6 マヤノリバティ     牡6   赤木高太

(JRA-VANの成績データ配信後、3着以内での確定を赤文字で表示しています)

| | コメント (0) | トラックバック (0)

IPATのログイン方法変更

セキュリティ向上のため、2007年8月11日(土)からIPAT(パソコン)方式のログイン方法が変更になるそうです。
①【INET-ID入力画面】で「INET-ID」を入力。
②【加入者情報入力画面】で「加入者番号」「暗証番号」「P-ARS番号」を入力。
③【IPAT投票メインメニュー】が表示。

こんな感じみたいです。

自作したIPAT用投票支援ソフトのログイン処理を変更しなくては...
8月11日(土)は早朝から投票支援ソフトのチェックと修正になるような...
シェアウェアを使っている人たちは大丈夫なんでしょうか?

| | コメント (0) | トラックバック (0)

ロトの当せんデータを自動取得する(7)

最後は、取得した当せんデータを回数の若い順に並べ替える処理です。
素直にページ順でデータを取得すると最新回のデータが先頭になってその後、過去の月別、
過去のデータという感じの並びになって順番がバラバラになります。
もちろんデータ取得するときにそれを考慮して取得すればソートする必要はないのですが、
今回はデータ取得処理を簡略化しているために最後にソート処理しています。


下記が2007年8月8日に実際にデータ取得したロト6の当せんデータです。

00354,04,06,22,31,34,41 43
00350,13,18,25,26,29,40 06
00351,03,13,16,24,26,43 15
00352,06,08,24,25,34,38 10
00353,01,09,15,16,22,26 29
00346,04,09,11,12,32,38 16
00347,08,20,23,27,32,33 13
00348,04,05,06,27,36,38 13
00349,08,13,15,19,20,30 25

最新回(354回)のあとに2007年7月の当せんデータ(350回~353回)、2007年6月の
当せんデータ(346回~349回)と続きます。これでは少しわかりにくいと思います。


実際に最初のカンマまでの5文字を数値変換して、そのデータでソートするとこんな感じになります。

00346,04,09,11,12,32,38 16
00347,08,20,23,27,32,33 13
00348,04,05,06,27,36,38 13
00349,08,13,15,19,20,30 25
00350,13,18,25,26,29,40 06
00351,03,13,16,24,26,43 15
00352,06,08,24,25,34,38 10
00353,01,09,15,16,22,26 29
00354,04,06,22,31,34,41 43

一応少しわかりにくいのですがソートの処理を記述しておきます。データを入れ替えないで
指定したインデックス配列に昇順のデータがセットされる処理です。
piLoto6Cntにはロト6当せんデータ数、pstLoto6Tmp配列には当せんデータ文字列が格納されているとします。

Dim i As Integer
Dim piLoto6Idx() As Integer             ' 昇順インデックス配列
Dim piLoto6IdxData() As Integer         ' 回数データ配列
Dim pstLoto6() As String                ' ソート後の当せんデータ文字列配列

ReDim piLoto6Idx(piLoto6Cnt)
ReDim piLoto6IdxData(piLoto6Cnt)
For i = 0 To piLoto6Cnt - 1
    ' 先頭5文字を回数データに数値変換
    piLoto6IdxData(i) = CInt(Mid(pstLoto6Tmp(i), 1, 5))
Next i
Call SortIndex(piLoto6Cnt, piLoto6Idx, piLoto6IdxData, 0)   ' 昇順ソートを実行

ReDim pstLoto6(piLoto6Cnt)              ' ソート後の当せんデータ配列を確保
For i = 0 To piLoto6Cnt - 1
    pstLoto6(i) = pstLoto6Tmp(piLoto6Idx(i) - 1)
    Debug.Write(pstLoto6(i))
Next i
'
' 【インデックスソート処理】
'
' iMax      --> データ数
' SortNum() --> ソート順のインデックスが格納される配列
' InData()  --> ソートの元データ
'
Public Sub SortIndex(ByVal iMax As Integer, ByVal SortNum() As Integer, ByVal InData() As Integer,
    ByVal Mode As Integer)

    Dim i, j As Integer
    Dim iNumWork() As Integer
    Dim iWorkData() As Integer
    Dim bSts As Boolean

    Dim iPos, iWork As Integer
    Dim iData As Integer

    ReDim iNumWork(iMax)
    ReDim iWorkData(iMax)

    ' データをチェック
    bSts = False
    For i = 0 To iMax - 1
        If InData(i) <> 0 Then
            bSts = True
            Exit For
        End If
    Next i

    For i = 0 To iMax - 1
        SortNum(i) = i + 1
    Next i

    ' データが全て0の時は終了
    If bSts = False Then
        Return
    End If

    ' ソートデータをセット
    For i = 0 To iMax - 1
        iWorkData(i) = InData(i)
    Next i

    ' データをSORTして数値の高い方から並べる
    For i = 0 To iMax - 2
        iPos = i
        iData = iWorkData(iPos)

        For j = i + 1 To iMax - 1
            If Mode = 0 Then        ' 昇順
                If iData > iWorkData(j) Then
                    iPos = j
                    iData = iWorkData(j)
                End If
            Else                    ' 降順
                If iData < iWorkData(j) Then
                    iPos = j
                    iData = iWorkData(j)
                End If
            End If
        Next j
        iWorkData(iPos) = iWorkData(i)
        iWorkData(i) = iData

        iWork = SortNum(iPos)
        SortNum(iPos) = SortNum(i)
        SortNum(i) = iWork
    Next i

End Sub

| | コメント (0) | トラックバック (0)

ねずみの競馬予想 2007年8月5日(番外編)

8月5日 函館、新潟、小倉のメインレース予想です。
表示はポイント上位5頭の順です。

---------------------------------------------------------------------
【函館 9R 第39回函館2歳ステークス(GⅢ) 芝1200m】

  2 イイデケンシン     牡2   横山典弘
  8 エイブルベガ      牡2   藤田伸二
  1 ナムラブレイブ     牡2   小林徹弥
  3 ホウザン        牡2   池添謙一
  6 ルミナリエ       牝2   岩田康誠

---------------------------------------------------------------------
【新潟11R 第42回関屋記念(GⅢ) 芝1600m】

  9 ニシノナースコール   牝5   吉田豊
  6 カンパニー       牡6   福永祐一
 18 グレイトジャーニー   牡6   蛯名正義
 16 カンファーベスト    牡8   安藤光彰
 17 センカク        牡5   石橋脩

---------------------------------------------------------------------
【小倉10R KBC杯 ダ1700m】

  2 サンライズキング    牡8   和田竜二
 12 ツムジカゼ       牡7   鮫島良太
  1 エイシンラージヒル   牡5   幸英明
  6 ゼンノストライカー   牡7   川田将雅
  9 メイショウサライ    牡6   佐藤哲三

(JRA-VANの成績データ配信後、3着以内での確定を赤文字で表示しています)

| | コメント (0) | トラックバック (0)

第42回関屋記念(GⅢ)、第39回函館2歳ステークス(GⅢ)予想

ホームページで第42回関屋記念(GⅢ)、第39回函館2歳ステークス(GⅢ)の予想を公開しました。

http://homepage2.nifty.com/rattrap/

| | コメント (0) | トラックバック (0)

ねずみの競馬予想 2007年8月4日(番外編)

8月4日 函館、新潟、小倉のメインレース予想です。
表示はポイント上位5頭の順です。

---------------------------------------------------------------------
【函館 9R みなみ北海道ステークス 芝2600m】

  4 ゴーウィズウィンド   牡8   横山典弘
  6 ファストタテヤマ    牡8   秋山真一
  8 ハイフレンドトライ   牡7   藤田伸二
 13 マンハッタンスカイ   牡3   岩田康誠
  7 ブリットレーン     牡8   津村明秀

---------------------------------------------------------------------
【新潟11R 長岡特別 芝1200m】

  6 ステラディクオーレ   牡4   石橋脩
  7 シュウザンコンドル   牡6   土谷智紀
 10 フジマサゴールド    牡4   蛯名正義
  4 シルクアヴァロン    牡4   飯田祐史
 11 レットイットライド   牡3   柴田善臣

---------------------------------------------------------------------
【小倉10R 小郡特別 芝1200m】

  8 レットバトラー     牡5   幸英明
 16 ルミナスポイント    牝4   川田将雅
 10 ホワイトペッパー    牝5   鮫島良太
 14 パープルコブラ     セン6  中村将之
  1 マルカラボンバ     牡3   野元昭嘉

(JRA-VANの成績データ配信後、3着以内での確定を赤文字で表示しています)

| | コメント (0) | トラックバック (0)

ロトの当せんデータを自動取得する(6)

今回は、前回に続いてロト6の過去のデータのページから当せんデータを取得して格納する処理です。
月別データとはページのフォーマットが違うので今回の処理はロト6、ミニロト共通になっています。

処理の方法は月別の処理とほぼ同じです。
タグとキーワード文字列を探してから当せんデータの文字列を抜き取ります。
そのあとに数値変換して格納する。これの連続です。

'
' 【過去の当せん番号取得処理】
'
' stFile --> ページ名
' nMax   --> データ数(ミニロト=5 ロト6=6)
'
Public Function GetLotoNumberPast(ByVal stFile As String, ByVal nMax As Integer) As Integer

    Dim i, j, k, nCnt As Integer
    Dim iPos, iP1, iP2, iP3, iP4 As Integer
    Dim stHtml, stTxt, stTmp As String
    Dim bStart As Boolean
    Dim stBuf As String

    On Error GoTo ErrorHandler

    stHtml = vbNullString

    ' ここでstHtmlにHTTPまたは保存ファイルからページのデータを読み込んでおく

    j = 0

    iPos = InStr(1, stHtml, "回別", CompareMethod.Text)
    If iPos = 0 Then Return 0

    bStart = False
    iPos = InStr(iPos, stHtml, "<TD", CompareMethod.Text)
    Do While (iPos > 0)
        System.Windows.Forms.Application.DoEvents()

        iP1 = InStr(iPos, stHtml, "/TD>", CompareMethod.Text)
        If iP1 > 0 Then
            stTxt = Mid(stHtml, iPos, iP1 - iPos)
            iP2 = InStr(2, stTxt, ">", CompareMethod.Text)
            iP3 = InStr(2, stTxt, "<span", CompareMethod.Text)
            If iP3 > 0 Then
                iP2 = InStr(iP3, stTxt, ">", CompareMethod.Text)
            End If
            If iP2 > 0 Then
                iP3 = InStr(iP2, stTxt, "<", CompareMethod.Text)
                If iP3 > 0 Then
                    stTmp = Mid(stTxt, iP2 + 1, iP3 - iP2 - 1)
                    If bStart = False Then
                        ' -----------------------------------------------------
                        ' n回のデータを取得する処理
                        ' -----------------------------------------------------
                        iP2 = InStr(1, stTmp, "第")
                        iP3 = InStr(1, stTmp, "回")
                        iP4 = InStr(1, stTmp, "~")
                        If iP2 > 0 And iP3 > 0 And iP4 = 0 Then
                            stTmp = Mid(stTmp, iP2 + 1, iP3 - iP2 - 1)
                            NumWork(j).CountTime = CInt(stTmp)
                            nCnt = 0
                            bStart = True
                        End If
                    Else
                        ' -----------------------------------------------------
                        ' 当せんデータ(ボーナス数字含む)を取得する処理
                        ' -----------------------------------------------------
                        iP2 = InStr(1, stTmp, "年")
                        If iP2 = 0 Then
                            NumWork(j).Data(nCnt) = CByte(stTmp)
                            nCnt += 1
                            If nCnt >= (nMax + 1) Then
                                ' 当せんデータ文字列を作成
                                stBuf = Format(NumWork(j).CountTime, "00000")
                                For k = 0 To nMax - 1
                                    stBuf &= "," & Format(NumWork(j).Data(k), "00")
                                Next k
                                stBuf &= " " & Format(NumWork(j).Data(nMax), "00")
                                stBuf &= vbCrLf

                                ' 当せんデータ文字列を格納
                                If nMax = 5 Then
                                    ReDim Preserve pstMiniLotoTmp(piMiniCnt)
                                    pstMiniLotoTmp(piMiniCnt) = stBuf
                                    piMiniCnt += 1
                                Else
                                    ReDim Preserve pstLoto6Tmp(piLoto6Cnt)
                                    pstLoto6Tmp(piLoto6Cnt) = stBuf
                                    piLoto6Cnt += 1
                                End If

                                bStart = False
                                j += 1
                            End If
                        End If
                    End If
                End If
            End If
            iPos = InStr(iP1, stHtml, "<TD", CompareMethod.Text)
        Else
            iPos = InStr(iPos + 4, stHtml, "<TD", CompareMethod.Text)
        End If
    Loop

    Return j

ErrorHandler:
    Call MsgBox(Err.Description, MsgBoxStyle.Critical Or MsgBoxStyle.MsgBoxSetForeground)
    Return -1

End Function

| | コメント (0) | トラックバック (0)

ロトの当せんデータを自動取得する(5)

今回は、実際にロト6の月別当せんデータのページからデータを取得して格納する処理です。

この処理では、取得したデータは文字列として保存しています。
ボーナス数字の手前はスペース区切りで、その他はカンマ区切りになっています。
最終的に当せんデータをファイル保存したときにエクセルで見れるようなフォーマットです。

n回(5文字),数字1,数字2,数字3,数字4,数字5,数字6 ボーナス数字

00001,02,08,10,13,27,30 39
00002,01,09,16,20,21,43 05
00003,01,05,15,31,36,38 13
00004,16,18,26,27,34,40 13
00005,09,15,21,23,27,28 43

また、当せんデータの取得のために構造体を作成してワークエリアとして使用しています。

' 当せんデータ用の構造体
Structure LOTODATA
    Dim CountTime As Integer            ' n回
    Dim Data() As Byte                  ' 当せん数字
    Public Sub Initialize()
        CountTime = 0
        ReDim Data(6)                   ' ボーナス数字を含む最大7データ
    End Sub
End Structure

' 過去のデータは最大50回分のデータがまとまっているので、余裕分も含めて51データ分を確保
Public NumWork(50) As LOTODATA

取得したデータの文字列(当せんデータ)はグローバルな pstLoto6Tmp に格納します。
piLoto6Cnt はデータを取得する毎インクリメントされるカウンタです。起動時に0クリアしておきます。

Public pstLoto6Tmp() As String          ' ロト6当せんデータ文字列
Public piLoto6Cnt As Integer            ' ロト6当せんデータ総数

さて、ここからが実際に当せん番号のデータを取得する処理です。
説明を書こうと思ったのですが、かなり強引に処理をしているために細かい説明がうまく書けません。
何をしているかというと、タグとキーワード文字列を探してから当せんデータの文字列を抜き取ります。
そのあとに数値変換して格納する。これの連続です。

'
' 【ロト6月別当せん番号取得処理】
'
' stFile --> ページ名
'
Public Function GetLoto6Number(ByVal stFile As String) As Integer

    Dim i, j, k, nCnt As Integer
    Dim iPos, iP1, iP2, iP3, iP4, iP5 As Integer
    Dim stHtml, stTxt, stTmp As String
    Dim bStart As Boolean
    Dim stBuf As String

    On Error GoTo ErrorHandler

    stHtml = vbNullString

    ' ここでstHtmlにHTTPまたは保存ファイルからページのデータを読み込んでおく

    j = 0

    iPos = InStr(1, stHtml, "回別", CompareMethod.Text)
    If iPos = 0 Then Return 0

    bStart = False
    iPos = InStr(iPos, stHtml, "<TD", CompareMethod.Text)
    Do While (iPos > 0)
        System.Windows.Forms.Application.DoEvents()

        iP1 = InStr(iPos, stHtml, "/TD>", CompareMethod.Text)
        If iP1 > 0 Then
            stTxt = Mid(stHtml, iPos, iP1 - iPos)
            iP2 = InStr(2, stTxt, ">", CompareMethod.Text)
            iP3 = InStr(2, stTxt, "(", CompareMethod.Text)
            If iP2 > 0 Or iP3 > 0 Then
                stTmp = Mid(stTxt, iP2 + 1, Len(stTxt) - iP2)
                If bStart = False Then
                    ' ---------------------------------------------------------
                    ' n回のデータを取得する処理
                    ' ---------------------------------------------------------
                    iP2 = InStr(1, stTmp, "第")
                    iP3 = InStr(1, stTmp, "回")
                    If iP2 > 0 And iP3 > 0 And InStr(1, stTmp, "~") = 0 Then
                        stTmp = Mid(stTmp, iP2 + 1, iP3 - iP2 - 1)
                        NumWork(j).CountTime = CInt(stTmp)
                        nCnt = 0
                        bStart = True
                    End If
                Else
                    ' ---------------------------------------------------------
                    ' 当せんデータ(ボーナス数字含む)を取得する処理
                    ' ---------------------------------------------------------
                    iP2 = InStr(1, stTmp, "年")
                    iP3 = InStr(1, stTmp, "販売")
                    If iP2 = 0 And iP3 = 0 Then
                        iP2 = InStr(1, stTmp, ".")
                        iP3 = InStr(1, stTmp, ".")
                        iP4 = InStr(1, stTmp, "口")
                        iP5 = InStr(1, stTmp, "該当なし")
                        If iP2 = 0 And iP3 = 0 And iP4 = 0 And iP5 = 0 Then
                            iP2 = InStr(1, stTmp, "(")
                            iP3 = InStr(1, stTmp, ")")
                            If iP2 > 0 And iP3 > 0 Then
                                stTmp = Mid(stTmp, iP2 + 1, iP3 - iP2 - 1)
                            End If

                            iP2 = InStr(1, stTmp, "<")
                            If iP2 > 0 Then
                                stTmp = Mid(stTmp, 1, iP2 - 1)
                            End If

                            NumWork(j).Data(nCnt) = CByte(stTmp)
                            nCnt += 1
                            If nCnt >= (6 + 1) Then
                                ' 当せんデータ文字列を作成
                                stBuf = Format(NumWork(j).CountTime, "00000")
                                For k = 0 To 2
                                    stBuf &= "," & Format(NumWork(j).Data(k), "00")
                                Next k
                                For k = 4 To 6
                                    stBuf &= "," & Format(NumWork(j).Data(k), "00")
                                Next k
                                stBuf &= " " & Format(NumWork(j).Data(3), "00")
                                stBuf &= vbCrLf

                                ' 当せんデータ文字列を格納
                                ReDim Preserve pstLoto6Tmp(piLoto6Cnt)
                                pstLoto6Tmp(piLoto6Cnt) = stBuf
                                piLoto6Cnt += 1

                                bStart = False
                                j += 1
                            End If
                        End If
                    End If
                End If
            End If
            iPos = InStr(iP1, stHtml, "<TD", CompareMethod.Text)
        Else
            iPos = InStr(iPos + 4, stHtml, "<TD", CompareMethod.Text)
        End If
    Loop

    Return j

ErrorHandler:
    Call MsgBox(Err.Description, MsgBoxStyle.Critical Or MsgBoxStyle.MsgBoxSetForeground)
    Return -1

End Function

| | コメント (0) | トラックバック (0)

ロトの当せんデータを自動取得する(4)

今回からは、ページの内容から当せんデータを取得する処理についてです。
最初はページ名を判定して処理を振り分ける方法です。

2007年8月1日現在の当せん番号案内のページでは、最新のロト6当せん番号の
ページ名がlt6-new.html、最新のミニロト当せん番号のページ名がloto-new.htmlとなっています。
このようにページ名でロト6、ミニロトどちらのページかを判断できます。
過去の当せん番号のページは、ある程度の期間まで月別のデータになっていますが、
それ以前のデータは第1回~第50回、第51回~第100回のようにまとめられています。

[過去の月別ページ名]

平成19年7月の当せん番号の場合
ロト6      lt6-h1907.html
ミニロト    loto-h1907.html

[過去のデータ]

第1回~第50回の場合
ロト6      loto60001.html
ミニロト    loto0001.html

上記のようなページ名の規則を利用すればページの判断が可能です。

'
' 【当せん番号処理の振り分け】
'
' stFile --> ページ名
'
Public Function LotoNumberProc(ByVal stFile As String) As Integer

    Dim iRet As Integer

    On Error GoTo ErrorHandler

    iRet = 0
    If InStr(1, stFile, "lt6-", CompareMethod.Text) > 0 Then
        ' ロト6最新の当せん番号と過去の月別当せん番号
        iRet = GetLoto6Number(stFile)
    ElseIf InStr(1, stFile, "loto-", CompareMethod.Text) > 0 Then
        ' ミニロト最新の当せん番号と過去の月別当せん番号
        iRet = GetMiniLotoNumber(stFile)
    Else
        If InStr(1, stFile, "loto6", CompareMethod.Text) > 0 Then
            If Len(stFile) = 14 Then
                ' ロト6過去の当せん番号
                iRet = GetLotoNumberPast(stFile, 6)
                Return iRet
            End If
        End If
        ' ミニロト過去の当せん番号
        iRet = GetLotoNumberPast(stFile, 5)
    End If

    Return iRet

ErrorHandler:
    Call MsgBox(Err.Description, MsgBoxStyle.Critical Or MsgBoxStyle.MsgBoxSetForeground)
    Return -1

End Function

| | コメント (0) | トラックバック (0)

« 2007年7月 | トップページ | 2007年9月 »