Юникод в LuaFAR

Здесь обсуждается всё, что касается макросов.
User avatar
NightRoman
Posts: 5940
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 14 times
Been thanked: 15 times
Contact:

Юникод в LuaFAR

Post by NightRoman »

Из другой области вопрос есть. Встроенные строки в Луа юникодные?

Примечание модератора: http://lua-users.org/wiki/LuaUnicode

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

NightRoman wrote:Из другой области вопрос есть. Встроенные строки в Луа юникодные?
Строки в Lua не имеют атрибута кодовой страницы или юникодности. Это просто последовательность байтов, каждый из которых может быть и нулевым. То-есть Lua-строки могут содержать как текст в любой кодировке, так и бинарные данные.

Что же касается LuaFAR'а (а теперь и макросов), то нужно иметь в виду, что кодировка - UTF-8.
LuaFAR, используя встроенную библиотеку Selene Unicode, поддерживает операции с текстом в UTF-8.

Более подробно можно прочитать в мануалах Lua и LuaFAR.

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Да, и теперь в макросах можно делать обработку текста регулярными выражениями, причём двух типов (Lua и фаровские).

User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Aidar »

Shmuel wrote:...LuaFAR, используя встроенную библиотеку Selene Unicode, поддерживает операции с текстом в UTF-8...
Уточнение: Для этого вызовы стандартных функций обработки строк должны быть оформлены так:

Code: Select all

-- s - строка
s:len()
s:gsub(' ', '-')

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

Re: Spring — внедрение Lua в качестве макроязыка

Post by Skirda »

Aidar wrote:Уточнение: Для этого вызовы стандартных функций обработки строк должны быть оформлены так:

Code: Select all

-- s - строка
s:len()
s:gsub(' ', '-')
Означает ли это, что для строки, содержащей "нелатиницу" в макросах len(s) != s:len()?
We are the Borg. You will be assimilated.
So Say We All!

User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Aidar »

Skirda wrote:Означает ли это, что для строки, содержащей "нелатиницу" в макросах len(s) != s:len()?
Т.к. len - макро-функция, скорее всего, она реализована через функцию unicode.utf8.len.
Я имел в виду, что
string.len(s) != s:len()
unicode.utf8.len(s) == s:len()

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

Aidar, ты отвечаешь так, как будто спрашивающие уже имеют опыт на Lua.
Ответ простой: s:len() даст тот же результат, что и макрофункция mf.len(s).

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

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by SUSim »

NightRoman, кстати, макрос на lua отлично справился запуском внешней проги без доступа к комстроке да и вообще без доступа к области shell.

из модального редактора я запустил копирование файла (бакап типа сделал) - lua команда os.execute.
SimSU ··· ·· -- ··· ··-

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Shmuel »

SUSim wrote:из модального редактора я запустил копирование файла (бакап типа сделал) - lua команда os.execute.
У os.execute могут быть проблемы с юникодными именами (не пробовал, но подозреваю).
Для копирования лучше использовать win.CopyFile.

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

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by SUSim »

тогда win.ShellExecute лучше os.execute?
почему то в Lua_5_1_Man.chm не нашел описание win библиотеки, дайте плиз ссылку на русском.

простой самоучитель LUA http://zserge.wordpress.com/2012/02/23/lua-за-60-минут/
SimSU ··· ·· -- ··· ··-

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

Re: Идея о замене макроязыка Фара на Lua, JavaScript и т.п.

Post by Shmuel »

SUSim wrote:тогда win.ShellExecute лучше os.execute?
почему то в Lua_5_1_Man.chm не нашел описание win библиотеки, дайте плиз ссылку на русском.
win.ShellExecute - не лучше и не хуже, но он юникодный.
Но для копирования файлов используйте win.CopyFile
Ссылка на мануал библиотеки LuaFAR (не на русском): https://github.com/shmuz/Spring/downloads

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

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

string. в lua тоже не юникодные?
и шаблоны это как-то не регэкспы? хотя в фармакросах и такого не было :)



всё таки, раздел про обсуждение самого языка lua нужен!
SimSU ··· ·· -- ··· ··-

Shmuel
Posts: 6151
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 320 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel »

SUSim wrote:string. в lua тоже не юникодные?
и шаблоны это как-то не регэкспы? хотя в фармакросах и такого не было :)
Эти вопросы уже задавались: http://forum.farmanager.com/viewtopic.p ... 381#p98381

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

Re: Spring — внедрение Lua в качестве макроязыка

Post by SUSim »

Shmuel wrote:Эти вопросы уже задавались: http://forum.farmanager.com/viewtopic.p ... 381#p98381
со вторым вопросом (про регэкспы) понятно!

а вот с первым не совсем... я спрашивал не про строки а про библиотеку string.
SimSU ··· ·· -- ··· ··-

User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Aidar »

SUSim wrote:... я спрашивал не про строки а про библиотеку string.
В LuaFAR string оставлена как есть в lua, для utf8 используется unicode.utf8.

Post Reply

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