Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Октября 12, 2024, 09:09:42 am
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: ATF 1.18 строка totalnet хеша getFORTSPosition() при отсутствии позиций « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: ATF 1.18 строка totalnet хеша getFORTSPosition() при отсутствии позиций  (Прочитано 6142 раз)
Vasy_Ok
Newbie
*
Сообщений: 36


Просмотр профиля Email
« : Февраля 22, 2013, 12:29:29 pm »

В ATF 1.18 getFORTSPosition() вместо нуля возвращает пустую строку хеша totalnet при отсутствии позиций по инструменту.
Записан
bugem
Full Member
***
Сообщений: 105



Просмотр профиля Email
« Ответ #1 : Февраля 22, 2013, 01:03:06 pm »

Более того возвращает вообще пустой хеш. Данные то не типизированы...
Я выкручиваюсь вот так, например:
Code: [Select]
     hMyPosition = getFORTSPosition(client, hSecInfo["secid"]);

     if(hMyPosition.size() == 0) { balance = 0; }
     else { balance = hMyPosition["totalnet"]; }
Записан
Vasy_Ok
Newbie
*
Сообщений: 36


Просмотр профиля Email
« Ответ #2 : Февраля 22, 2013, 01:54:26 pm »

Более того возвращает вообще пустой хеш. Данные то не типизированы...

Заранее извиняюсь за идиотские вопросы, далек от программирования.
То есть, как я понял, данные в этом хеше разных типов и при отсутствии позиции по-другому их отобразить нельзя? Я правильно понял? Т. е. заполнить его нулями не получится никак?
Записан
bugem
Full Member
***
Сообщений: 105



Просмотр профиля Email
« Ответ #3 : Февраля 22, 2013, 02:07:57 pm »

Quote
Заранее извиняюсь за идиотские вопросы, далек от программирования.
Да я тоже не программист :) А лишь волею судеб...

Quote
То есть, как я понял, данные в этом хеше разных типов и при отсутствии позиции по-другому их отобразить нельзя?
Если они там есть, то числовые. А вот если их нет... В АТФ нет типа данных пусто (null), да и других нет. Поэтому я и проверяю длинну хеша и если она равна 0, т.е. хэш пустой, то присваиваю соответствующим полям значение 0.

Quote
Т. е. заполнить его нулями не получится никак?
А вот это уже к разработчикам, да продлятся их годы :)
Записан
Heller
Разработчики
Hero Member
*****
Сообщений: 1277


Просмотр профиля Email
« Ответ #4 : Февраля 22, 2013, 02:14:09 pm »

Более того возвращает вообще пустой хеш. Данные то не типизированы...

Заранее извиняюсь за идиотские вопросы, далек от программирования.
То есть, как я понял, данные в этом хеше разных типов и при отсутствии позиции по-другому их отобразить нельзя? Я правильно понял? Т. е. заполнить его нулями не получится никак?

Не очень понимаю что вы имеете ввиду под "заполнить нулями". Любому хешу можно задавать любые значения:

somehash["somekey"] = somevalue;
Записан
Vasy_Ok
Newbie
*
Сообщений: 36


Просмотр профиля Email
« Ответ #5 : Февраля 22, 2013, 02:16:48 pm »

bugem, понял. Спасибо за подсказку с проверкой.
« Последнее редактирование: Февраля 22, 2013, 02:27:40 pm от Vasy_Ok » Записан
Vasy_Ok
Newbie
*
Сообщений: 36


Просмотр профиля Email
« Ответ #6 : Февраля 22, 2013, 02:26:52 pm »

Не очень понимаю что вы имеете ввиду под "заполнить нулями". Любому хешу можно задавать любые значения:
somehash["somekey"] = somevalue;

Ясно. Не знал об этом.
Хотелось бы сразу получать размер позиции равный нулю (мне пока нужна только строка totalnet), если её нет по данному инструменту, а не "плясать с бубном". Конечно, если это возможно.
Записан
bugem
Full Member
***
Сообщений: 105



Просмотр профиля Email
« Ответ #7 : Февраля 22, 2013, 02:45:23 pm »

2Vasy_Ok. Да это еще не "пляски с бубном". Это нормальная практика. Вообще, не стесняйтесь проверять полученные значения. Даешь больше проверок! Хороших и разных! :)
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  Подсистема ATF  |  Topic: ATF 1.18 строка totalnet хеша getFORTSPosition() при отсутствии позиций « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!