Выборка списка отдельного вида спорта VB2010
#1 OFFLINE
Добавлено 20 November 2012 - 17:57
а)определение страны(исключить не нужные для торговли)
б)матч на перерыве
в)кол-во голов в 1 тайме: от 0 до 2:рынок нужен тм голов в 1 тайме+3
г)коэф ЗА тм рынка больше заданного значения
оставшиеся после отбора рынки вывести на listbox
#2 OFFLINE
Добавлено 20 November 2012 - 19:38
б)пункт неясен,матч,который тока что на перерыв ушел или что?если так, то можно постоянно обновлять по примеру в а) пункте что дал,там следить,когда маркеты первого тайма закрываются,ну или ешо вариант парсить ливескоре или бф инплай с первой страницы
в)тут надо уточнить что имеется в виду
г)getMarketPricesCompressed вызовом указав marketId,примеры есть опять же в теме по моему линку.
#3 OFFLINE
Добавлено 21 November 2012 - 04:06
б)да,ушел на перерыв
в)если 0 голов,тотал 3.5,если 1 гол-4.5, 2-5.5
г) при использовании getMarketPricesCompressed при отладке выскакивает ошибка с цифрой 65***
уже что только не делал-не получается...список нужных рынков не выводится
#4 OFFLINE
Добавлено 21 November 2012 - 08:22
в его функцию "PopulateListView" легко добавить фильтр по стране (есть там переменная mPlace). Получение и сравнение кэфов ЗА тоже есть в коде.
Цитата
Цитата
Цитата
#5 OFFLINE
Добавлено 21 November 2012 - 10:27
denvb, on 21 November 2012 - 08:22, сказал:
Отредактировано koni, 21 November 2012 - 10:37.
#6 OFFLINE
Добавлено 22 November 2012 - 10:29
ReDim .countries(0) : .countries(0) = "TUR"
#7 OFFLINE
Добавлено 22 November 2012 - 10:52
нужные коды стран в инете много где можно наити,надо ISO codes искать countrycode.org/
#8 OFFLINE
Добавлено 22 November 2012 - 11:02
koni, on 22 November 2012 - 10:52, сказал:
нужные коды стран в инете много где можно наити,надо ISO codes искать countrycode.org/
спасибо,а как правильно определить что матч на перерыве но 2 тайм еще не начался?
#9 OFFLINE
Добавлено 29 November 2012 - 10:22
Private Sub bMarkets_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bMarkets.Click Print("*** Markets ***") Dim oMarketsReq As New BFUK.GetAllMarketsReq Dim oMarketsResp As BFUK.GetAllMarketsResp With oMarketsReq .header = oHeaderUK() ReDim .eventTypeIds(0) : .eventTypeIds(0) = 1 'For horse racing ReDim .countries(1) : .countries(0) = "TUR" : .countries(1) = "ZAF" .fromDate = Today .toDate = Today.AddDays(1) End With oMarketsResp = BetFairUK.getAllMarkets(oMarketsReq) 'Call the UK API With oMarketsResp CheckHeader(.header) Print("ErrorCode = " & .errorCode.ToString) If .errorCode = BFUK.GetAllMarketsErrorEnum.OK Then Print(.marketData) End If End With End Sub
причем для скачек работает,а при футболе выдает ошибку...в чем проблема?
#10 OFFLINE
Добавлено 29 November 2012 - 11:09
исправь значения:
maxBufferSize="999999999"
maxBufferPoolSize="524288"
maxReceivedMessageSize="999999999"
#11 OFFLINE
Добавлено 29 November 2012 - 11:25
AlexX, on 29 November 2012 - 11:09, сказал:
исправь значения:
maxBufferSize="999999999"
maxBufferPoolSize="524288"
maxReceivedMessageSize="999999999"
все равно ошибка в строчке
oMarketsResp = BetFairUK.getAllMarkets(oMarketsReq)
maxBufferPoolSize тоже ставил 999999999
не помогло
#12 OFFLINE
#13 OFFLINE
Добавлено 29 November 2012 - 11:44
AlexX, on 29 November 2012 - 11:29, сказал:
Public Class TestForm Const SessTokFile = "C:\Betfair\SessToken.txt" Public BetfairGL As New BFGlobal.BFGlobalServiceClient Public BetFairUK As New BFUK.BFExchangeServiceClient Public oHeaderGL As New BFGlobal.APIRequestHeader Private Sub TestForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load oHeaderGL.sessionToken = My.Computer.FileSystem.ReadAllText(SessTokFile) End Sub Private Sub TestForm_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing My.Computer.FileSystem.WriteAllText(SessTokFile, oHeaderGL.sessionToken, False) End Sub Function oHeaderUK() As BFUK.APIRequestHeader Dim Header As New BFUK.APIRequestHeader Header.sessionToken = oHeaderGL.sessionToken Return Header End Function Sub CheckHeader(ByVal Header As BFGlobal.APIResponseHeader) With Header Print("HeaderCode = " & .errorCode.ToString) oHeaderGL.sessionToken = .sessionToken End With End Sub Sub CheckHeader(ByVal Header As BFUK.APIResponseHeader) With Header Print("HeaderCode = " & .errorCode.ToString) oHeaderGL.sessionToken = .sessionToken End With End Sub Sub Print(ByVal Message As String) With tLog .SelectionStart = .Text.Length .SelectedText = vbCrLf & Message End With End Sub Private Sub bLogin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bLogin.Click tLog.Clear() Print("*** Login ***") Dim oLoginReq As New BFGlobal.LoginReq Dim oLoginResp As BFGlobal.LoginResp With oLoginReq .username = "username" .password = "password" .productId = 82 'For free API End With oLoginResp = BetfairGL.login(oLoginReq) 'Call the API With oLoginResp CheckHeader(.header) Print("ErrorCode = " & .errorCode.ToString) End With End Sub Private Sub bLogout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bLogout.Click tLog.Clear() Print("*** Logout ***") Dim oLogoutReq As New BFGlobal.LogoutReq Dim oLogoutResp As BFGlobal.LogoutResp oLogoutReq.header = oHeaderGL oLogoutResp = BetfairGL.logout(oLogoutReq) 'Call the API With oLogoutResp CheckHeader(.header) Print("ErrorCode = " & .errorCode.ToString) End With End Sub Private Sub bKeepAlive_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bKeepAlive.Click tLog.Clear() Print("*** KeepAlive ***") Dim oKeepAliveReq As New BFGlobal.KeepAliveReq Dim oKeepAliveResp As BFGlobal.KeepAliveResp oKeepAliveReq.header = oHeaderGL oKeepAliveResp = BetfairGL.keepAlive(oKeepAliveReq) 'Call the API CheckHeader(oKeepAliveResp.header) End Sub Private Sub bEvents_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bEvents.Click tLog.Clear() Print("*** Events ***") Dim oEventsReq As New BFGlobal.GetEventTypesReq 'Create the request object Dim oEventsResp As BFGlobal.GetEventTypesResp 'Create a variable for the response object oEventsReq.header = oHeaderGL 'Load request parameters oEventsResp = BetfairGL.getActiveEventTypes(oEventsReq) 'Call the API With oEventsResp CheckHeader(.header) 'Check response header Print("ErrorCode = " & .errorCode.ToString) If .errorCode = BFGlobal.GetEventsErrorEnum.OK Then 'Check the response errorcode For i = 0 To .eventTypeItems.Length - 1 'Process the received data With .eventTypeItems(i) Print(.name & " (" & .id & ")") End With Next End If End With End Sub Private Sub bMarkets_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bMarkets.Click Print("*** Markets ***") Dim oMarketsReq As New BFUK.GetAllMarketsReq Dim oMarketsResp As BFUK.GetAllMarketsResp With oMarketsReq .header = oHeaderUK() ReDim .eventTypeIds(0) : .eventTypeIds(0) = 1 'For horse racing ReDim .countries(1) : .countries(0) = "TUR" : .countries(1) = "ZAF" .fromDate = Today .toDate = Today.AddDays(1) End With [color=#FF0000] oMarketsResp = BetFairUK.getAllMarkets(oMarketsReq)[/color][color=#B22222] '[/color]Call the UK API With oMarketsResp CheckHeader(.header) Print("ErrorCode = " & .errorCode.ToString) If .errorCode = BFUK.GetAllMarketsErrorEnum.OK Then Print(.marketData) End If End With End Sub End Class
красная строчка высвечивается
Отредактировано nikola86, 29 November 2012 - 11:46.
#14 OFFLINE
Добавлено 29 November 2012 - 12:12
и что за ошыбка то?запостил бы
#15 OFFLINE
Добавлено 29 November 2012 - 12:28
koni, on 29 November 2012 - 12:12, сказал:
и что за ошыбка то?запостил бы
и турция сегодня играет...
Вот собственно ошибка
Attached File(s)
#16 OFFLINE
Добавлено 29 November 2012 - 12:37
With AllMarkets
For i = 0 To .marketData.Length - 1
With .marketData(i)
Print(.marketID & " " & .marketStatus & " " & .marketName & “ “ & .menuPath)
End With
Next
End With
etot kod vmesto Print(.marketData)
dalshe novyv modul sozdaesh nazvanie "Unpack" ,vnutri ego kladesh:
Class MarketDataType 'For getAllMarkets data
Public marketId As Integer
Public marketName As String
Public marketType As String
Public marketStatus As String
Public eventDate As DateTime
Public menuPath As String
Public eventHeirachy As String
Public betDelay As Integer
Public exchangeId As Integer
Public countryCode As String
Public lastRefresh As DateTime
Public noOfRunners As Integer
Public noOfWinners As Integer
Public totalAmountMatched As Double
Public bspMarket As Boolean
Public turningInPlay As Boolean
End Class
Class UnpackAllMarkets 'For getAllMArkets
Public marketData As MarketDataType() = {} 'The returned array of market data
Private Const BaseDate As DateTime = #1/1/1970#
Private Const ColonCode = "&%^@" 'The substitute code for "\:"
Sub New(ByVal MarketString As String)
Dim n As Integer, Mdata, Field As String()
Mdata = MarketString.Replace("\:", ColonCode).Split(":") 'Get array of Market substrings
n = UBound(Mdata) - 1
ReDim marketData(n)
For i = 0 To n
Field = Mdata(i + 1).Replace("\~", "-").Split("~") 'Get array of data fields
marketData(i) = New MarketDataType
With marketData(i)
.marketId = Field(0) 'Load the array items
.marketName = Field(1).Replace(ColonCode, ":")
.marketType = Field(2)
.marketStatus = Field(3)
.eventDate = BaseDate.AddMilliseconds(Field(4))
.menuPath = Field(5).Replace(ColonCode, ":")
.eventHeirachy = Field(6)
.betDelay = Field(7)
.exchangeId = Field(8)
.countryCode = Field(9)
.lastRefresh = BaseDate.AddMilliseconds(Field(10))
.noOfRunners = Field(11)
.noOfWinners = Field(12)
.totalAmountMatched = Val(Field(13))
.bspMarket = (Field(14) = "Y")
.turningInPlay = (Field(15) = "Y")
End With
Next
End Sub
End Class
#17 OFFLINE
Добавлено 29 November 2012 - 13:45
koni, on 29 November 2012 - 12:37, сказал:
With AllMarkets
For i = 0 To .marketData.Length - 1
With .marketData(i)
Print(.marketID & " " & .marketStatus & " " & .marketName & “ “ & .menuPath)
End With
Next
End With
etot kod vmesto Print(.marketData)
dalshe novyv modul sozdaesh nazvanie "Unpack" ,vnutri ego kladesh:
Class MarketDataType 'For getAllMarkets data
Public marketId As Integer
Public marketName As String
Public marketType As String
Public marketStatus As String
Public eventDate As DateTime
Public menuPath As String
Public eventHeirachy As String
Public betDelay As Integer
Public exchangeId As Integer
Public countryCode As String
Public lastRefresh As DateTime
Public noOfRunners As Integer
Public noOfWinners As Integer
Public totalAmountMatched As Double
Public bspMarket As Boolean
Public turningInPlay As Boolean
End Class
Class UnpackAllMarkets 'For getAllMArkets
Public marketData As MarketDataType() = {} 'The returned array of market data
Private Const BaseDate As DateTime = #1/1/1970#
Private Const ColonCode = "&%^@" 'The substitute code for "\:"
Sub New(ByVal MarketString As String)
Dim n As Integer, Mdata, Field As String()
Mdata = MarketString.Replace("\:", ColonCode).Split(":") 'Get array of Market substrings
n = UBound(Mdata) - 1
ReDim marketData(n)
For i = 0 To n
Field = Mdata(i + 1).Replace("\~", "-").Split("~") 'Get array of data fields
marketData(i) = New MarketDataType
With marketData(i)
.marketId = Field(0) 'Load the array items
.marketName = Field(1).Replace(ColonCode, ":")
.marketType = Field(2)
.marketStatus = Field(3)
.eventDate = BaseDate.AddMilliseconds(Field(4))
.menuPath = Field(5).Replace(ColonCode, ":")
.eventHeirachy = Field(6)
.betDelay = Field(7)
.exchangeId = Field(8)
.countryCode = Field(9)
.lastRefresh = BaseDate.AddMilliseconds(Field(10))
.noOfRunners = Field(11)
.noOfWinners = Field(12)
.totalAmountMatched = Val(Field(13))
.bspMarket = (Field(14) = "Y")
.turningInPlay = (Field(15) = "Y")
End With
Next
End Sub
End Class
#18 OFFLINE
Добавлено 29 November 2012 - 15:18
это на майкрософте вычитал
#19 OFFLINE
Добавлено 29 November 2012 - 15:53
nikola86, on 29 November 2012 - 15:18, сказал:
это на майкрософте вычитал
Попробуй создать "новое проект"
#20 OFFLINE
Добавлено 29 November 2012 - 16:22
AlexX, on 29 November 2012 - 15:53, сказал:
попробуй сам,создай форму,на нее 5 кнопок и текстбокс,в код формы брось мой код,ну и в проект добавь 2 ссылки. если сработает,скинешь мне исходник...