Не считывает таблицу "Ограничения по клиентским счетам"

Страницы: 1
RSS
Не считывает таблицу "Ограничения по клиентским счетам", Не считывает таблицу "Ограничения по клиентским счетам"
 
Не считывает таблицу "Ограничения по клиентским счетам"

is_run = true;

function OnInit(script_path)
    LogOpen();--открываем файл с логом или создаем новый если его не существует
    futures_client_limits = getItem("futures_client_limits", 1);--получение первой строки таблицы Ограничения по клиентским счетам
    log_file:write(getNumberOf(futures_client_limits).."\n");
end

function main()
    while is_run do
         sleep(100);
    end
end

function LogOpen()--открываем файл с логом или создаем новый если его не существует
    local timeNow = os.time();
    log_file = io.open(getScriptPath().."//log_"..os.date("%Y", timeNow).."."..os.date("%m", timeNow)..".txt","a");--открываем файл с логом или создаем новый если его не существует
    fullDate = os.date("%d", timeNow).."/"..os.date("%m", timeNow).."/"..os.date("%Y", timeNow).." "..os.date("%X", timeNow);--текущая дата для записи в лог
    log_file:write(fullDate.."\n");
    log_file:flush();
end

function LogClose()
    log_file:close();
end



getNumberOf(futures_client_limits) возвращает -1
 
А если пытаюсь обратиться к элементу, получаю nil
message(tostring(futures_client_limits[1]));
Не понимаю почему не возвращает таблицу, в квике она открыта и в ней есть значения
 
Вопрос решился, в документации ошибка!
В документации сказано что ключ числовой но на самом деле строковый. Через такой цикл получил значения ключей

for k,v in pairs(futures_client_limits) do
    n=n+1
    log_file:write(k.." - "..v.."\n");
end
 
Христиан, здравствуйте!

Ответим по порядку:

1)
Цитата
getNumberOf(futures_client_limits) возвращает -1
getNumberOf принимает как параметр только имена таблиц терминала в виде строки (строки заключаются в ""), а вы пытаетесь передать ему таблицу Lua. Список таблиц используемых в функциях «getItem», «getNumberOf» и «SearchItems» можно посмотреть в руководстве пользователя "Интерпретатор языка Lua" (стр. 22).
Также обращаем ваше внимание, что getNumberOf возвращает количество строк таблицы. Так что в вашем примере (где получена всего одна строка) это в любом случае не имеет особого смысла.

2)
Цитата
А если пытаюсь обратиться к элементу, получаю nil
message(tostring(futures_client_limits[1]));
Для получения значений таблицы необходимо обращаться к ее параметрам.
Пример:    
Код
tbl = getItem("depo_limits", 4)
message(tostring(tbl.sec_code))
Список доступных параметров каждой таблицы также можно посмотреть в руководстве пользователя "Интерпретатор языка Lua" (стр. 56).

3) В документации ошибки нет. В описании функции, справа от ее имени в скобочках указываются аргументы, принимаемые функцией, а не результат ее работы.
Имя параметра таблицы (оно же ключ при обращении к этому параметру) имеет строковый тип.
Номер строки (Index), которую мы хотим получить при помощи функции getItem - числовой.

Эти две вещи не имеют между собой ничего общего.

Руководства пользователя для работы с Lua вы можете найти на нашем сайте.
(https://arqatech.com/upload/iblock/194/quik_lua.zip).
Страницы: 1
Читают тему
Наверх