Ликбез по Lua

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Ликбез по Lua

Post by John Doe »

В данной теме задаём вопросы по Lua.

Для того, чтобы получить начальное представление о языке достаточно почитать какую-нибудь короткую обзорную статью, например:
Для более близкого знакомства рекомендую эти документы:
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Ликбез по Lua

Post by Shmuel »

Latest post of the previous page:

Замените io.read на io.open.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Ликбез по Lua

Post by buniak_a_h »

Shmuel, сайт уже не даёт исправить. В скрипте, есессно, io.open, а hf:read. О пользе копипаста…
2useven10
Posts: 5210
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Ликбез по Lua

Post by 2useven10 »

Может файл надо сначала открыть io.open(), а потом читать?
Ваш Error.7z при этом читается целиком -- 1990 байт.

долго печатал...
Last edited by 2useven10 on Fri 29 Oct, 2021 21:31, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Ликбез по Lua

Post by buniak_a_h »

2useven10, в Вашем "черновике" написано 1990 байт. А файл - 9922 байта …
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Ликбез по Lua

Post by buniak_a_h »

Ой, файл всё время меняется… Извините.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Ликбез по Lua

Post by buniak_a_h »

Вопрос закрыт. В io.open я как раз вместо 'rb' указал 'r' . Всем спасибо и извините.
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Ликбез по Lua

Post by gotar »

Code: Select all

local adv = far.AdvControl
local F=far.Flags
_G.actl = {
  GetColor=function(...) return adv(F.ACTL_GETCOLOR, ...) end;
}
color = actl.GetColor( "COL_EDITORTEXT")
-- color = actl.GetColor( F.COL_EDITORTEXT)
выдает ошибку
bad argument #2 to 'GetColor' (number expected, got string)
, а

Code: Select all

local adv = far.AdvControl
local F=far.Flags
_G.actl = {
  GetColor=function(...) return adv(F.ACTL_GETCOLOR, ...) end;
}
-- color = actl.GetColor( "COL_EDITORTEXT")
color = actl.GetColor( F.COL_EDITORTEXT)
выдает ошибку
bad argument #2 to 'GetColor' (number expected, got nil)
. Как правильно писать?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Ликбез по Lua

Post by Shmuel »

gotar wrote: Tue 24 May, 2022 15:38 Как правильно писать?
Проблема в том, что luafar3 не поддерживает передачу цветовых индексов строками, а только числами.
luafar2l - поддерживает, и ваш код там бы сработал.
Для Фар3 надо писать: color = actl.GetColor(far.Colors.COL_EDITORTEXT)
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Ликбез по Lua

Post by buniak_a_h »

Пара вопросов про загрузку модулей.
  1. В package.path указан, в частности, такой элемент: …;.\?.lua;…. А что есть в момент загрузки модулей текущая папка? А то там точка, а где это - я не понял … Или зависит от контекста (предыдущих действий)?
  2. Есть ли возможность загрузить модуль из файла не .lua (.moon) и не *.dll ? Я имею в виду - без добавления функции в package.loaders и package.Path.
Поясню. Есть мысль хранить модули в той же папке, где и макросы. НО! Если они будут с расширением lua или moon, то они будут выполняться во время загрузки макросов.
Last edited by buniak_a_h on Fri 01 Jul, 2022 12:57, edited 1 time in total.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Ликбез по Lua

Post by Shmuel »

buniak_a_h,
  1. Да, в Фар3 это ненадёжный элемент, зависит от контекста.
  2. Возможность есть, причём разными способами.
    Один из способов - функция dofile. Так сделано здесь.
    Другой способ - добавление нового расширения в package.path.
    В far2l подумываю о том, чтобы lua и moon-файлы, начинающиеся с подчёркивания, не загружались автоматически.
Last edited by Shmuel on Fri 01 Jul, 2022 13:36, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Ликбез по Lua

Post by buniak_a_h »

Shmuel wrote: Fri 01 Jul, 2022 13:16 buniak_a_h,

  1. Один из способов - функция dofile. …
Правильно ли я понимаю, что dofile(filename) - синоним loadfile(filename)()?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Ликбез по Lua

Post by Shmuel »

buniak_a_h wrote: Fri 01 Jul, 2022 15:32 Правильно ли я понимаю, что dofile(filename) - синоним loadfile(filename)()?
Правильно. В общем случае вариант с loadfile более гибкий.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Ликбез по Lua

Post by buniak_a_h »

Shmuel wrote: Fri 01 Jul, 2022 15:38 Правильно. В общем случае вариант с loadfile более гибкий.
Ну да, я уже понял. Можно параметры передать, например…
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Ликбез по Lua

Post by HaRT »

 ! Message from: HaRT
Shmuel wrote: Fri 01 Jul, 2022 13:16 В far2l подумываю о том, чтобы lua и moon-файлы, начинающиеся с подчёркивания, не загружались автоматически.
Обсуждение этого животрепещущего вопроса перенесено.
Фар есть инструмент, а не нянька. © 2009 DrKnS
gotar
Posts: 412
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 17 times
Been thanked: 3 times

Ликбез по Lua

Post by gotar »

Есть ли в Lua возможность сохранить хэштаблицу в виде текстового файла, и позже восстановить эту хэштаблицу в оперативной памяти из этого файла?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Ликбез по Lua

Post by Shmuel »

gotar wrote: Sat 13 Aug, 2022 12:48 Есть ли в Lua возможность сохранить хэштаблицу в виде текстового файла, и позже восстановить эту хэштаблицу в оперативной памяти из этого файла?
Для этого существуют библиотеки сериализации. В том числе в Фаре (mf.serialize / mf.deserialize).
Post Reply

Return to “Нужна помощь”