Перепрыгнеть в содержание


- - - - -

Belfair api Parser


5 ответов в эту тему

#1 OFFLINE   apiprogramming

    Новичок


  • Участник
  • Пип
  • 13 сообщения
0

Добавлено 21 July 2012 - 15:13

Здравствуйте!
www.docs.developer.belfair.com/Belfair/#%21page=00008360-MC.00008335-MC

Вот ссылка на мануал api одной функции, у которой ответ нужно Parser.
В интернете не нашло не одного адекватного кода Parser.
Я уже написал один Parser на функцию, у меня вопрос не пишу ли я велосипед?
Под Parser я имею, веду функцию принимающий строку и возражающий строго типизированный результат.
И мне интересно как так получилось что api некоторые результаты нужно Parser ?

Отредактировано Jericho, 21 July 2012 - 15:48.


#2 OFFLINE   apiprogramming

    Новичок


  • Участник
  • Пип
  • 13 сообщения
0

Добавлено 21 July 2012 - 15:35

GetAllMarkets как вы EventDate конвертируете в DateTime ?

я так :
DateTime(1970, 1, 1).date.AddMilliseconds(float "1164223800000")
правильно ли я делаю?

Отредактировано apiprogramming, 21 July 2012 - 15:37.


#3 OFFLINE   Jericho

    Иерихон


  • RSB
  • ПипПипПипПипПип
  • 2226 сообщения
859

Добавлено 21 July 2012 - 15:47

Сообщенияapiprogramming, on 21 July 2012 - 15:13, сказал:

Здравствуйте!
www.docs.developer.belfair.com/Belfair/#%21page=00008360-MC.00008335-MC

Вот ссылка на мануал api одной функции, у которой ответ нужно Parser.
В интернете не нашло не одного адекватного кода Parser.
Я уже написал один Parser на функцию, у меня вопрос не пишу ли я велосипед?
Под Parser я имею, веду функцию принимающий строку и возражающий строго типизированный результат.
И мне интересно как так получилось что api некоторые результаты нужно Parser ?

Ответ на ваш запрос "Get Complete Market Prices Compressed" сервис возвращает строку в виде
20771785~0~:58805~3~11510.72~4.1~~~false~~~~~|1.01~673.36~0.0
разделитель здесь "~"

Чтобы получить данные нужно написать структуру/класс, который будет заполнятся данными после "распарсивания" данной строки. Потом с этими данными можно будет манипулировать.

вот здесь есть пример на C#, вы вроде на нем пишите...
forum.bdp.betfair.com/showthread.php?t=163

Сообщенияapiprogramming, on 21 July 2012 - 15:35, сказал:

GetAllMarkets как вы EventDate конвертируете в DateTime ?

я так :
DateTime(1970, 1, 1).date.AddMilliseconds(float "1164223800000")
правильно ли я делаю?

Я получаю значение в зоне UK и прибавляю к нему нужный мне часовой пояс. Данные хранятся в строковой переменной. Если нужно перевести в тип DateTime - использую стандартную CDate для преобразования строкового выражения в переменную типа Date.

Код VB.NET
.eventDate.AddHours(4).ToString("HH:mm")


#4 OFFLINE   apiprogramming

    Новичок


  • Участник
  • Пип
  • 13 сообщения
0

Добавлено 21 July 2012 - 15:53

СообщенияJericho, on 21 July 2012 - 15:47, сказал:

Я получаю значение в зоне UK и прибавляю к нему нужный мне часовой пояс. Данные хранятся в строковой переменной. Если нужно перевести в тип DateTime - использую стандартную CDate для преобразования строкового выражения в переменную типа Date.

Код VB.NET
.eventDate.AddHours(4).ToString("HH:mm")
Вы кажется не поняли я не про часовой пояс а преобразование int to datetime

Отредактировано apiprogramming, 21 July 2012 - 15:56.


#5 OFFLINE   Jericho

    Иерихон


  • RSB
  • ПипПипПипПипПип
  • 2226 сообщения
859

Добавлено 21 July 2012 - 15:59

Сообщенияapiprogramming, on 21 July 2012 - 15:53, сказал:

Вы кажется не поняли я не про часовой пояс а преобразование int to datetime
можно так.
BaseDate.AddMilliseconds(1164223800000)
вернет в типе DateTime

и у вас тоже верно, к дате 1970, 1, 1 нужно прибавить кол-во прошедших миллисекунд.

#6 OFFLINE   BotBeetle

    Специалист


  • Участник II
  • ПипПипПипПип
  • 589 сообщения
262
  • МестоположениеМинск, Беларусь

Добавлено 21 July 2012 - 16:06

Цитата

как вы EventDate конвертируете в DateTime ?

#region TimeConvert

public DateTime TimeConvert(long epoch)
{
long baseTicks = 621355968000000000;
long tickResolution = 10000;
long epochTicks = (epoch * tickResolution) + baseTicks;
DateTime date = new DateTime(epochTicks, DateTimeKind.Utc);
return date;
}

#endregion

где epoch - то что приходит от BetFair