Юникод в LuaFAR

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

Юникод в LuaFAR

Post by NightRoman » Mon 01 Oct, 2012 15:16

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

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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Mon 01 Oct, 2012 15:28

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

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

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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Mon 01 Oct, 2012 15:39

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

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

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

Post by Aidar » Mon 01 Oct, 2012 16:10

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

Code: Select all

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

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 1 time

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

Post by Skirda » Mon 01 Oct, 2012 16:28

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: 533
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 6 times
Contact:

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

Post by Aidar » Mon 01 Oct, 2012 16:40

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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Mon 01 Oct, 2012 16:53

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

User avatar
SUSim
Posts: 1477
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 4 times

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

Post by SUSim » Fri 05 Oct, 2012 20:23

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

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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Fri 05 Oct, 2012 21:26

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

User avatar
SUSim
Posts: 1477
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 4 times

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

Post by SUSim » Sat 06 Oct, 2012 08:59

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

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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Sat 06 Oct, 2012 09:07

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: 1477
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 4 times

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

Post by SUSim » Wed 10 Oct, 2012 18:15

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



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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Wed 10 Oct, 2012 18:58

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

User avatar
SUSim
Posts: 1477
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 4 times
Been thanked: 4 times

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

Post by SUSim » Wed 10 Oct, 2012 19:47

Shmuel wrote:Эти вопросы уже задавались: viewtopic.php?p=98381#p98381
со вторым вопросом (про регэкспы) понятно!

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

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

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

Post by Aidar » Wed 10 Oct, 2012 19:49

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

Shmuel
Posts: 5202
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 16 times
Been thanked: 148 times

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

Post by Shmuel » Wed 10 Oct, 2012 20:30

SUSim wrote:я спрашивал не про строки а про библиотеку string.
Библиотека string - не юникодная.
Если пользоваться двоеточием вместо точки - будут использоваться функции из unicode.utf8.

Примеры:

Code: Select all

string.sub(text,5,10) -- получить подстроку от 5 до 10 байта (длина = 6 байт)
text:sub(5,10)        -- получить подстроку от 5 до 10 символа (длина = 6 символов)
text = "Привет"
print(#text)            --> 12
print(string.len(text)) --> 12
print(text:len())       --> 6

Post Reply

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