1 (2022-04-08 20:24:52 отредактировано iforts)

Тема: Сохранение настроек индикатора Lua в файл

Здравствуйте коллеги!
Пытаюсь сделать сохранение настроек индикатора в файл, вроде все работает и сохранение и загрузка, но не сохраняет параметры при сохранении индикатора. То есть получается что в память только можно загрузить и работать. В окне настроек тоже не отображаются новые, кто нибудь делал такое ?

--Загрузка настроек из файла
    if Settings.set_save ~= "" then
        --Создаем каталог
       -- Сохранение натроек в файл
        local dirPath = getScriptPath() .."\\".."set_ind"
        if not os.rename(dirPath, dirPath) then
           os.execute("mkdir ".."\""..dirPath.."\"")
        end
        local set_name = tostring(Settings.set_save)    
        local FilePath = getScriptPath().."//set_ind//"..set_name..".lua"
        SaveTable(Settings, FilePath)    
        message(utf2win("   Настройки сохранены в = " ..FilePath),2)
    end 
    -- Загрузка настроек из файла в таблицу настроек индикатора
    if Settings.set_load ~= "" then 
        -- проверка каталога
        local dirPath = getScriptPath() .."\\".."set_ind"
        if not os.rename(dirPath, dirPath) then
           message(utf2win("   Каталог set_ind отсутствует"),2)
        end 
        local set_name = tostring(Settings.set_load)
        local FilePath = getScriptPath().."//set_ind//"..set_name..".lua"
        local preset = LoadTable(FilePath)    
        if preset ~= nil then 
           Settings = preset
           Settings.set_load = ""
           message(utf2win("  Настройки загружены из = " ..FilePath),2)
        else 
           message(utf2win("   Нет загрузки из = " ..FilePath),2)
        end   
    end

2 (2022-04-08 12:26:54 отредактировано swerg)

Re: Сохранение настроек индикатора Lua в файл

1)

iforts пишет:

вроде все работает и сохранение

2)

iforts пишет:

но не сохраняет параметры при сохранении индикатора.

Два вопроса:
а) Что такое "при сохранении индикатора"? Это когда?
б) Так сохраняет или нет? я привел два предложения из вашего сообщения, ничего не понял.

3

Re: Сохранение настроек индикатора Lua в файл

не сохраняет в квике, а работает только при загрузке из файла

4

Re: Сохранение настроек индикатора Lua в файл

тоесть пока в настройках индикатора указано имя файла в Settings.set_load = "333" настройки будут подгружаться из файла, если убрать, то они исчезнут из индикатора при сохранении по кнопке

5 (2022-04-08 16:19:45 отредактировано swerg)

Re: Сохранение настроек индикатора Lua в файл

Я всё одно ничего не понимаю.

в) В каком обработчике вставлен код, который вы приводите в первом сообщении?
г) "при сохранении по кнопке" - какой кнопке? где какую кнопку вы нажимаете?

Было бы здорово, если бы вы не стеснялись писать как можно подробнее, причем по шагам что именно вы делаете.
За лишние слова никто ругать не будет.

iforts пишет:

тоесть пока в настройках индикатора указано имя файла в Settings.set_load = "333" настройки будут подгружаться из файла, если убрать, то они исчезнут из индикатора при сохранении по кнопке

В коде есть явная проверка:

if Settings.set_load ~= "" then 

т.е. для пустой строки в Settings.set_load ничего и не должно происходить.

message(utf2win("   Каталог set_ind отсутствует"),2)

Сохраните файл с кодом индикатора в Win1251 кодировке - и не придётся вот это вот utf2win использовать. Но это мелочи, конечно, не относится к описываемой проблеме.

6

Re: Сохранение настроек индикатора Lua в файл

1.    OnChangeSettings()

2.т.е. для пустой строки в Settings.set_load ничего и не должно происходить.  в том то и дело что происходит. настройки применяютя из таблицы окна настроек, там где кнопки сохранения индикатора

7

Re: Сохранение настроек индикатора Lua в файл

iforts пишет:

2.т.е. для пустой строки в Settings.set_load ничего и не должно происходить.  в том то и дело что происходит. настройки применяютя из таблицы окна настроек, там где кнопки сохранения индикатора

Применяются - в смысле значения в Settings изменяются? ну так это понятно, их QUIK там обновляет
Или речь про другое?

8

Re: Сохранение настроек индикатора Lua в файл

да квик обновляет при сохранении по кнопке и поэтому нельзя сделать так чтобы загруженные настройки из файла сохранились в файл внд, то есть квик затирает настройки из файла 333
вот тут тоже кто то спрашивал
[url]https://forum.quik.ru/messages/forum10/message60617/topic7013/#message60617[/url]

9

Re: Сохранение настроек индикатора Lua в файл

Мне просто любопытно: вы осознанно в каждом ответе подкидываете новых загадок и обстоятельств?

Вроде изначально (как я понял) шла речь про сохранение/чтение какого-то собственного файла.
Но теперь вы пишете про внд файл.

Было бы здорово, если бы вы связно обрисовали требуемую к решению задачу - тогда, быть может, кто-то подсказал бы её решение. Пока задача из ваших сообщений не вырисовывается. Поймите, это вы где-то в контексте и вашей проблемы, другие вообще не знают что ж вы хотите сделать и зачем делаете именно так.

10

Re: Сохранение настроек индикатора Lua в файл

Да нет конечно )), на самом деле все просто. Есть индикатор для квик в котором около 70 разных параметров. Что каждый раз настраивать его при новой загрузке на график через окно настроек становится сложно.
Поэтому и требуется создание отдельных файлов готовых настроек для этого индикатора.
Можно конечно использовать шаблоны, но все они хранятся в  файле внд и постоянно отслеживать там эти шаблоны при систематическом изменении внд просто затруднительно.
Поэтому и возникла идея сделать такое. Но оказалось что это невозможно так как хотелось бы.  Потому что сохранить загруженные настройки из таких файлов не возможно, так как они затираются таблицей из настроек индикатора

11

Re: Сохранение настроек индикатора Lua в файл

Я бы тогда не сохранял настройки в Settings, раз с ним непонятности и сложности, а хранил в своей переменной. И эту переменную записывал / читал, тем более, что средства у вас уже есть для этого, как я понял (SaveTable / LoadTable).
И редактировал бы этот файл настроек руками при надобности (он же текстовый, надеюсь?)
По-моему, было бы даже удобнее, учитывая "70 настроек".

12

Re: Сохранение настроек индикатора Lua в файл

Что мешает делать всегда, без проверок?
Settings = LoadTable()

13

Re: Сохранение настроек индикатора Lua в файл

swerg пишет:

Я бы тогда не сохранял настройки в Settings, раз с ним непонятности и сложности, а хранил в своей переменной. И эту переменную записывал / читал, тем более, что средства у вас уже есть для этого, как я понял (SaveTable / LoadTable).
И редактировал бы этот файл настроек руками при надобности (он же текстовый, надеюсь?)
По-моему, было бы даже удобнее, учитывая "70 настроек".

выход только такой