Волшебное исчезание меток

Страницы: 1
RSS
Волшебное исчезание меток
 
Всем добрый день!

Столкнулся с тем, что после аварийного выхода из терминала  при его зависании по сторонней причине, исчезают все метки
добавленные при помощи функции  AddLabel после последнего запуска скрипта.
Очень неприятно и в голову ничего не пришло кроме сохранения параметров меток в файл при их создании с последующим удалением и пересозданием каждой при новом запуске.
Наверное можно было бы решить эту проблему имея в lua функцию сохранения параметров терминала
в файл info.wnd, но увы. Кто-то нашел решение этой проблемы?

Попутно изучая в доках функцию AddLabel на предмет что курили разработчики когда придумали использовать для параметра "Время в формате «ЧЧММСС»..." тип "NUMBER" наехал вот на такую шутку:
Код
   local a="09:15:18"
   local b=string.gsub(a,":","")
   local c=tonumber(b)
   local d=tonumber(string.gsub(a,":",""))
   message(tostring(c).." "..tostring(d))
Результат:
91518 nil

Кто коллекционирует, дарю ))
v.9.8.0.11, Lua 5.3.5
 
string.gsub возвращает два параметра, поэтому tonumber воспримет второй как базу, что и приводит к nil. Скобки добавить надо, чтобы ограничить одним параметром возвращаемое значение gsub.
 
А метки да, исчезают. Как я понимаю из-за ошибки создания дампа состояния при падении. Приходится хранить параметры метки в файле состояния скрипта. Впрочем, я предпочитаю все хранить независимо, чтобы всегда иметь возможность при перезапуске проверить и выявить все различия.
 
Цитата
Nikolay написал:
А метки да, исчезают. Как я понимаю из-за ошибки создания дампа состояния при падении. Приходится хранить параметры метки в файле состояния скрипта. Впрочем, я предпочитаю все хранить независимо, чтобы всегда иметь возможность при перезапуске проверить и выявить все различия.
Там есть еще один прикол - после выпада в дамп и последующего запуска GetLabelParams возвращает параметры метки, хотя на графике ее нет.
Приходится их по одной удалять их по возвращаемому uid и создавать с новым из сохраненных параметров.
 
Kolossi, А нафига ВЫПАДАТЬ в дамп? Лично я сбрасываю дамп на диск раз в 5 минут... нет, вру - даже чаще: раз в 100 секунд, и потери данных здесь будут только если именно в момент сброса дампа Квик и сдохнет. Но вероятность этого прекрасного события вряд ли отличается от нуля, и все данные оказываются хорошо сохранившимися. Ну, разве что в эти 100 секунд что-то произойдёт.
 
Владимир,я имел ввиду закрытие терминала после его зависания и последующий запуск. А с сохранением жизненно важных переменных и таблиц у меня давно все отлажено.

В итоге я считаю, что отсутствие меток на графике при наличии их параметров в системе в подобной ситуации является багом и подлежит рассмотрению и исправлению в ближайших версиях квика.  Но похоже так считаю только я (
 
Kolossi, Я, во всяком случае, считаю иначе: все эти графики с метками для торговли не нужны от слова совсем, и потому я категорически против любых изменений Квика, который и без того на ладан дышит.  
 
Владимир, дык для торговли и Lua не нужен, только здесь другая тема.
 
Kolossi, Кому как. Мне, например,  для торговли только Lua и нужен. А тема здесь направлена на потенциальное изменение софта Квика. НЕ НАДО ЭТОГО ДЕЛАТЬ!!!
 
Цитата
Владимир написал:
Kolossi, Кому как. Мне, например,  для торговли только Lua и нужен. А тема здесь направлена на потенциальное изменение софта Квика. НЕ НАДО ЭТОГО ДЕЛАТЬ!!!
Как обычно на любом форуме есть человек постоянно лезущий в любую тему "со своим единственно правильным мнением" не обращая внимание на то, что оно никого не интересует. Давайте не будем засорять ветку.
 
Kolossi, 99% всех веток практически любого форума, не говоря уже про этот, есть чистейший мусор. В частности, Ваша ветка. Несмотря на то, что здесь в достатке специализированных форумов ("Пожелания по развитию функциональных возможностей системы QUIK", "Вопросы по работе с графиками в системе QUIK", "Вопросы по эксплуатации системы QUIK, не выделенные в отдельные темы форума"), народ постоянно лезет в "Программирование на языке Lua" со своими дурацкими пожеланиями, которые "подлежит рассмотрению и исправлению в ближайших версиях квика", хотя софт уже настолько изуродован аналогичными пожеланиями их предшественников, что уже едва справляется со своими первоначальными задачами. Давайте не будем засорять форум. :wink:  
 
Kolossi, добрый день.

При аварийном завершении работы терминала QUIK действительно не сохраняется текущий wnd-файл и утрачиваются изменения, внесенные в конфигурацию в ходе последней рабочей сессии.
Сохранение текущего wnd-файла с помощью QLua-функции в силу ряда причин не может быть реализовано, и решением описанной проблемы видится именно используемый Вами способ - сохранение параметров в текстовый файл.

Что касается приведенного Вами фрагмента кода, как написал ранее Nikolay, функция string.gsub() возвращает два значения, из-за чего невозможно корректно выполнить преобразование tonumber.
Страницы: 1
Читают тему (гостей: 1)
Наверх