Ликбез по Lua

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

Ликбез по Lua

Post by John Doe »

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

Для того, чтобы получить начальное представление о языке достаточно почитать какую-нибудь короткую обзорную статью, например:
Для более близкого знакомства рекомендую эти документы:
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Ликбез по Lua

Post by zg »

Latest post of the previous page:

AleXH wrote:У вас есть дети? Вы им тоже отвечаете на вопрос "почему земля круглая?" - RTFM? - Если вопрос требует объёмных объяснений, либо предположительно потянет за собой таковые, то отсылку к RTFM хорошо бы сопроводить пояснением этого. Неумение отвечать на "глупые" вопросы говорит о не только о недостатке знаний у вопрошающего, но и об отсутствии соответствующего умения у отвечающего.
так нельзя разговаривать с людьми, у которых вы рассчитываете получить помощь. бан. навсегда.
EGez
Posts: 145
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 2 times

Ликбез по Lua

Post by EGez »

AleXH wrote: У вас есть дети?
Есть.
AleXH wrote: Вы им тоже отвечаете на вопрос "почему земля круглая?" - RTFM?
Нет.

Отвечая на вопрос ребенка я учитываю тот факт, что разговариваю с ребенком. Здесь же, предполагаю, я в праве ожидать того, что вы не ребенок. Если я ошибаюсь, попросите сразу такого же отношения и к себе.
AleXH wrote: Неумение отвечать на "глупые" вопросы говорит о не только ...
Но вы же сами к полемике привели. И до меня вам уже несколько раз дали понять, что так не делается, что это неправильно и нелогично, и даже показали, как лучше сделать. Хоть сухо, но ведь корректно и без грубостей. К тому же, вы ведь знали, что Lua - это сторонняя разработка. Именно поэтому я и указал на контактную страницу разработчика. Всему же предел есть.

Ну вот, опять оффтопика пол страницы...
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Ликбез по Lua

Post by John Doe »

PIL на русском: http://aap13.narod.ru/PiL/ (перевод первого издания)

В прошлом году вышел перевод и третьего издания (Программирование на языке Lua, Иерузалимски Р.), но в электронном виде недоступен (если не считать пиратские сканы).
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Ликбез по Lua

Post by John Doe »

John Doe wrote:PIL на русском: http://aap13.narod.ru/PiL/ (перевод первого издания)
К сожалению далеко не полный, разделы 1 - 4
Attachments
PiL 1st ed. (rus) 1-4.chm.7z
(42.78 KiB) Downloaded 245 times
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Ликбез по Lua

Post by Max Rusov »

А почему при запуске макроса

Code: Select all

Macro {   description="test1"; area="Editor"; key="AltX"; 
  action=function()
    Keys("CtrlO")
  end;
}
Не происходит ожидаемого действия (не показывается пользовательский экран) ?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Ликбез по Lua

Post by John Doe »

Ответ на ваш вопрос тут http://forum.farmanager.com/viewtopic.p ... 63#p124463
Вот решение http://forum.farmanager.com/viewtopic.p ... 92#p124492

А данная тема вообще не по макросам.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Ликбез по Lua

Post by Max Rusov »

Спасибо, Что-то получилось, хотя и не идеально.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Ликбез по Lua

Post by ccaid »

Code: Select all

> print(math.modf(0.2/0.1))
2       0
> print(math.modf(0.3/0.1))
2       1
> print(math.modf(0.4/0.1))
4       0
> print(math.modf(0.5/0.1))
5       0
> print(math.modf(0.6/0.1))
5       1
дробная часть, равная 1, это баг, или общеизвестная и неисправляемая особенность движка Lua, или это умолчательное поведение функций вывода, и если им чего-нибудь подкрутить, то будут выдавать типа 0.99999999999999999998 ?
Фар делают добрые люди
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Ликбез по Lua

Post by Shmuel »

ccaid wrote: или это умолчательное поведение функций вывода, и если им чего-нибудь подкрутить, то будут выдавать типа 0.99999999999999999998 ?
Это правильный вариант ответа. Функция print внутри использует tostring(), которая специально ограничивает количество цифр, именно для того, чтобы не было по умолчанию "неприятного" вывода типа "0.99999999999999999998".

А подкрутить можно - преобразовать в строку самим - см. функцию basicSerialize в LuaMacro\api.lua.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

Ликбез по Lua

Post by ccaid »

для полноты картины приведу следующее:

Code: Select all

> a,b=math.modf(0.3/0.1)
> print( b==1 and '1' or b==0 and '0' or '0.xxx')
0.xxx
Фар делают добрые люди
Karagy
Posts: 57
Joined: Tue 02 May, 2006 08:43
Location: Питер
Been thanked: 3 times

Ликбез по Lua

Post by Karagy »

Для полноты картины следует начинать с такого:

Code: Select all

> print(("%g"):format(3 - 0.3/0.1))
4.44089e-016
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Ликбез по Lua

Post by Shmuel »

Ну мы же в Фаре! lua:=3-0.3/0.1
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Ликбез по Lua

Post by iva »

Обнаружил, что после выполнения io.open функция io.write перестаёт работать, работает только io.stdout:write Так и задумано?
Вот пример:

Code: Select all

local file = io.open("aaa.a","w")
file:write("Writing to file\n")
--io.write("Writing to screen\n") -- ошибка: "standard output file is closed"
io.stdout:write("Writing to stdout\n")
io.close(file)
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Ликбез по Lua

Post by John Doe »

Не воспроизводится.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Ликбез по Lua

Post by iva »

Действительно в свеже-запущенном Far не воспроизводится. Тогда вопрос: как узнать что не в порядке с тем экземплярос Far, в котором проявляется. Иными словами, есть ли какая-нибудь возможность диагностики?
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

Ликбез по Lua

Post by Shmuel »

iva wrote: как узнать что не в порядке с тем экземплярос Far, в котором проявляется
С Фаром думаю всё в порядке. А проявлялось по-видимому в результате ваших предыдущих действий, то-есть закрытия stdout.
Post Reply

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