msave/mload/mdelete

Здесь обсуждается всё, что касается макросов.
User avatar
SUSim
Posts: 1538
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: msave есть а mload?

Post by SUSim »

Latest post of the previous page:

Правильно все пока, потом второй параметр можно будет добавить, функция на развитие не ограничена... И правильно, что mload() вызывает ошибку! Если это(mload без параметров) начнет работать, то ни о каком расширении функционала речи не пойдет :( тогда толь опять "АХТУНГ" останется...
SimSU ··· ·· -- ··· ··-

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: msave есть а mload?

Post by Skirda »

ну... если готовы к перелопачиванию макросов, то давай переименую в vsave и vload
We are the Borg. You will be assimilated.
So Say We All!

User avatar
HaRT
Moderator
Posts: 9238
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 93 times
Been thanked: 197 times

Re: msave есть а mload?

Post by HaRT »

Skirda wrote:ну... если готовы к перелопачиванию макросов, то давай переименую в vsave и vload
может лучше gsave/gload (от слова globals)?
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: msave есть а mload?

Post by Skirda »

да как скажете - g, так g :-)
если все готовы, то пойду переименовывать
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: msave есть а mload?

Post by Skirda »

кстати, функции [mvg]load можно добавить второй необязательный параметр - в какую переменную считать значение с именем из первого параметра. типа, если второй не указан, то считываться будет в одноименную переменную, если указан, то...
We are the Borg. You will be assimilated.
So Say We All!

User avatar
SUSim
Posts: 1538
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: msave есть а mload?

Post by SUSim »

А если в msave добавить второй... третий параметр :) типа: без второго параметра или 0 - записать в реестр, -1 - сохранить в переменную из реестра, 2 сохранить в реестр с именем ключа третьего параметра, -2 - сохранить в переменную из реестра с именем ключа третьего параметра и тюпю (т.п.) :) во многих функциях фара такое есть...

Это имхо бред... лучше в mload сделать второй необязательный параметр - имя ключа реестра откуда грузить!
SimSU ··· ·· -- ··· ··-

User avatar
John Doe
Бюрократ
Posts: 12601
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 260 times

Re: msave есть а mload?

Post by John Doe »

HaRT wrote:
Skirda wrote:ну... если готовы к перелопачиванию макросов, то давай переименую в vsave и vload
может лучше gsave/gload (от слова globals)?
Не надо gload. Globals понять ещё можно, а g уже нет.
Skirda wrote:кстати, функции [mvg]load можно добавить второй необязательный параметр - в какую переменную считать значение с именем из первого параметра. типа, если второй не указан, то считываться будет в одноименную переменную, если указан, то...
Логично.

User avatar
John Doe
Бюрократ
Posts: 12601
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 260 times

Re: msave есть а mload?

Post by John Doe »

SUSim wrote:лучше в mload сделать второй необязательный параметр - имя ключа реестра откуда грузить!
Неконцептуально.

User avatar
SUSim
Posts: 1538
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: msave есть а mload?

Post by SUSim »

Я так и не понял mload сделали или нет?
макрос:

Code: Select all

%%test=10; msave("%%test") %%test=100; msgbox(mload("%%test"),%%test)
mload возвращает 1 - типа все в порядке, однако в переменной %%test 100, а ожидалось 10
SimSU ··· ·· -- ··· ··-

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Re: msave есть а mload?

Post by Skirda »

не пашет
щаз починю
We are the Borg. You will be assimilated.
So Say We All!

User avatar
SUSim
Posts: 1538
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 5 times
Been thanked: 9 times

Re: msave есть а mload?

Post by SUSim »

СПАСИБО! все работает как хотелось!
SimSU ··· ·· -- ··· ··-

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

Re: LuaFAR: ломка API

Post by Shmuel »

К теме не имеет отношения, но не хотелось начинать новую, короче, к сведению:

Code: Select all

shmuel 02.04.2013 18:02:11 +0300 - build 126

1. mf.msave сохраняет таблицы произвольной степени вложенности.
   Рекурсивные вложения не сохраняются (пропускаются).
   /С использованием кода от SUSim/.

User avatar
John Doe
Бюрократ
Posts: 12601
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 260 times

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Не понял куда конкретно сохраняются данные.
Что является базой данных?

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

John Doe wrote:Не понял куда конкретно сохраняются данные.
Что является базой данных?
Место сохранения не изменилось, это по-прежнему база плагина LuaMacro.
Вот добавленный кусок из macrotest.lua, для ясности:
  1. mf.msave("macrotest", "testkey", { a=5, {b=6}, c={d=7} })
  2. local t=mf.mload("macrotest", "testkey")
  3. assert(t.a==5 and t[1].b==6 and t.c.d==7)
  4. mf.mdelete("macrotest", "*")
  5. assert(mf.mload("macrotest", "testkey")==nil)

User avatar
John Doe
Бюрократ
Posts: 12601
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 260 times

Re: msave/mload/mdelete

Post by John Doe »

Сейчас в распоряжении скрипта есть как семейство функций mf(msave/mload/mdelete), так и семейство FAR API (SettingsControl).

Хочется разобраться со спецификой, в каких случаях что использовать для хранения настроек (и вообще любых данных, требующих между сессиями фар).
  • msave/mload/mdelete однозначно проще в использовании, и позволяют хранить таблицы
    Но как у них с производительностью?
  • Функции SettingsControl зато позволяют хранить данные в отдельной базе (а не в базе плагина).
    Вопрос это не актуален для персональных скриптов, но ведь скрипты выкладываются и в публичное пользование, подобно плагинам.
На первый взгляд стоит отдать предпочтение использованию msave/mload/mdelete.
Но что посоветует автор этой функциональности?

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

Re: msave/mload/mdelete

Post by Shmuel »

John Doe wrote:
  • msave/mload/mdelete однозначно проще в использовании, и позволяют хранить таблицы
    Но как у них с производительностью?
  • Функции SettingsControl зато позволяют хранить данные в отдельной базе (а не в базе плагина).
На первый взгляд стоит отдать предпочтение использованию msave/mload/mdelete.
Но что посоветует автор этой функциональности?
1. С производительностью у msave/mload/mdelete всё в порядке.

2. "Функции SettingsControl зато позволяют хранить данные в отдельной базе" - это неверно.
Фар ищет по гуиду только среди баз плагинов. Да, можно хранить в базе чужого плагина, или создать отдельный плагин специально для этого (не пробовал ни того, ни другого).

3. msave/mload/mdelete - это просто оболочки над SettingsControl, реализованные на Lua, что можно видеть в файле api.lua. Нравятся эти оболочки - пользуйтесь, не нравятся - сделайте лучше.

Post Reply

Return to “Обсуждение макросов”