見出し画像

🐤⑪IPATGOXで照会・的中歴


'========================================================================================================
'
'   機能    指定されたIPATIDの購入状況を返す
'
'   引数    filepath:ipatgo.exeがあるパスを指定
'           IL      :IPATログイン情報を指定
'           ST      :購入状況情報の格納用
'
'   戻り値  0    :取得成功
'           0以外   :取得失敗
'
'========================================================================================================
Function Get_Stat(ByVal filepath As String, ByRef IL As IpatLogin, ByRef St As StatInfo) As Long
Dim obj As New IWshRuntimeLibrary.WshShell
Dim value As String * 256

' statモードで取得実行
    If obj.Run(filepath & "ipatgo.exe" & " " & _
                    "stat" & " " & _
                    IL.InetID & " " & _
                    IL.UserNo & " " & _
                    IL.PassNo & " " & _
                    IL.ParsNo, _
                    0, True) <> 0 Then
        Get_Stat = -1   '取得失敗
        Exit Function
    End If

' 更新されたstat.iniから値を取得
    Call GetPrivateProfileString("stat", "date", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.date = Left$(value, InStr(1, value, vbNullChar) - 1)
    Call GetPrivateProfileString("stat", "time", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.Time = Left$(value, InStr(1, value, vbNullChar) - 1)
    Call GetPrivateProfileString("stat", "total_vote_amount", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.total_vote_amount = Left$(value, InStr(1, value, vbNullChar) - 1)
    Call GetPrivateProfileString("stat", "total_repayment", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.total_repayment = Left$(value, InStr(1, value, vbNullChar) - 1)
    Call GetPrivateProfileString("stat", "daily_vote_amount", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.daily_vote_amount = Left$(value, InStr(1, value, vbNullChar) - 1)
    Call GetPrivateProfileString("stat", "daily_repayment", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.daily_repayment = Left$(value, InStr(1, value, vbNullChar) - 1)
    Call GetPrivateProfileString("stat", "limit_vote_amount", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.limit_vote_amount = Left$(value, InStr(1, value, vbNullChar) - 1)
    Call GetPrivateProfileString("stat", "limit_vote_count", vbNullString, value, Len(value), (filepath & "stat.ini"))
    St.limit_vote_count = Left$(value, InStr(1, value, vbNullChar) - 1)
    
    Get_Stat = 0   '取得成功

End Function
Sub 手動ipatgo照会()
Hand = 1
ipatgo照会
Hand = 0
End Sub
Sub ipatgo照会()


OSドライブ
IPatログin
   

If Get_Stat(OsGo, iplg, stin) = 0 Then
    If Val(stin.daily_vote_amount) > 0 Then
        E = Int(Val(stin.daily_repayment) / Val(stin.daily_vote_amount) * 1000) / 10
    Else
        E = 0
    End If
    'MsgBox ("取得年月日:" & stin.date & vbCrLf & _
    '        "取得時刻:" & stin.time & vbCrLf & _
    '        "累計購入金額:" & stin.total_vote_amount & vbCrLf & _
    '        "累計払戻金額:" & stin.total_repayment & vbCrLf & _
    '        "1日分購入金額:" & stin.daily_vote_amount & vbCrLf & _
    '        "1日分払戻金額:" & stin.daily_repayment & vbCrLf & _
    '        "購入限度額:" & stin.limit_vote_amount & vbCrLf & _
    '        "購入可能件数:" & stin.limit_vote_count)
    St1 = stin.date & " " & stin.Time & " " & vbCrLf & _
        "1日分購入金額:" & stin.daily_vote_amount & vbCrLf & _
        "1日分払戻金額:" & stin.daily_repayment & vbCrLf & _
        "1日分損益:" & Val(stin.daily_repayment) - Val(stin.daily_vote_amount) & vbCrLf & _
        "損益/100:" & Int((Val(stin.daily_repayment) - Val(stin.daily_vote_amount)) / 10) / 10 & vbCrLf & vbCrLf & _
        "1日分回収率:" & E & "%"
    Else
    St1 = "購入状況照会に失敗しました 時間外取得出来ない(海外競馬取得出来ない?)"
    
End If

Debug.Print (St1)

If Hand = 1 Then
    MsgBox (St1 & vbCrLf & "土曜夜の海外投票分含まれる")
Else
'    Sheets("収支").Cells(YBet, 1) = stin.date & " " & stin.Time '日付
'
'    Sheets("収支").Cells(YBet, 5) = Val(stin.daily_repayment) - Val(stin.daily_vote_amount) '1日分損益
'
'    Sheets("収支").Cells(YBet, 7) = stin.daily_vote_amount '1日分購入金額
'    Sheets("収支").Cells(YBet, 8) = stin.daily_repayment '日分払戻金額
'    Sheets("収支").Cells(YBet, 9) = E '1日分回収率
End If
    
    
End Sub



'========================================================================================================
'
'   機能    指定されたIPATIDのhistory購入状況を返す
'
'   引数    filepath:ipatgo.exeがあるパスを指定
'           IL      :IPATログイン情報を指定
'           ST      :購入状況情報の格納用
'
'   戻り値  0    :取得成功
'           0以外   :取得失敗
'
'========================================================================================================
Function Get_history(ByVal filepath As String, ByRef IL As IpatLogin, ByRef St As StatInfo) As Long
Dim obj As New IWshRuntimeLibrary.WshShell
Dim value As String * 256

'historyモードで取得実行?
    If obj.Run(filepath & "ipatgo.exe" & " " & _
                    "history" & " " & _
                    IL.InetID & " " & _
                    IL.UserNo & " " & _
                    IL.PassNo & " " & _
                    IL.ParsNo, _
                    0, True) <> 0 Then
        Get_history = -1   '取得失敗
        Exit Function
    End If

' 更新されたhistory.iniから値を取得?
    
    Get_history = 0   '取得成功

End Function
Sub 手動ipatgo当日的中履歴()
Hand = 1
ipatgo当日的中履歴
Hand = 0
End Sub
Sub ipatgo当日的中履歴()

OSドライブ
IPatログin


If Hand = 1 Then
    St1 = "当日的中投票内容" & date
End If


If Get_history(OsGo, iplg, stin) = 0 Then

    '的中判定のコード 1:確定前 5:的中 6:外れ 7:返還 ※これ以外の未知のコードが戻り値となる場合があります
    
    'receipt.csv'投票履歴一覧ファイル(照会内容,受付番号,受付時刻,件数,払戻額)
    'result.csv'投票履歴結果内容ファイル(1受付番号,2件番号,3レース,4馬券投票方式,5組番,6組数,7投票金額,8的中判定)
    
    Open OsGo & "result.csv" For Input As #1  'ダイアログファイルOPEN
    
    Do Until EOF(1)
        Input #1, Gg(1), Gg(2), Gg(3), Gg(4), Gg(5), Gg(6), Gg(7), Gg(8)
        If Gg(8) = "5" Then
            If Hand = 1 Then
                St1 = St1 & vbCrLf & "受付番号:" & Gg(1) & " " & Gg(3) & Gg(4) & Gg(5) & " " & Gg(7) & "円"
            End If
        End If
    Loop
    
    Close #1
    St2 = St1
    Debug.Print (St2)
Else
    If Hand = 1 Then
        St2 = "当日履歴に失敗しました" '投票履歴無しも失敗
        Debug.Print ("Sub ipatgo当日履歴" & St2)
        
        問題発生
    End If
End If

If Hand = 1 Then
    MsgBox (St2 & vbCrLf & "土曜夜の海外投票分含まれない")
Else
'    Sheets("収支").Cells(YBet, 6) = HitBet
'    Sheets("収支").Cells(YBet, 10) = St1
End If

End Sub


競馬でプログラムの作成
お疲れ様でした😎


いいなと思ったら応援しよう!

お風呂にバブ
応援あれば、とっても嬉しいです😁