@ProLua

Страница 221 из 307
Чай
09.01.2018
16:10:05
"Норм сайты", написанные на Lua, точно есть.

Andrey
09.01.2018
16:12:38
В элтексовом оборудовании и опенврт веб интерфейс на луа сделан

Google
[Anonymous]
09.01.2018
16:57:12
"Норм сайты", написанные на Lua, точно есть.
Я не про качество сайтов, а про приятность процесса

Попробовал Lapis, неплохая штука

Спасибо вам за ваши ответы

Kukuzapa
10.01.2018
05:44:56
Попробуй sailor

Akamit
10.01.2018
11:38:46
привет, подскажите пожалуйста, как лучше распарсить такую строку a=1;b=2;c=3 на переменные? (ключ и значение)

Yuriy
10.01.2018
11:39:25
gsub

Akamit
10.01.2018
11:40:37
gsub
спасибо, почитаю

Yuriy
10.01.2018
11:40:58
Хотя не вакт что так получится

я бы через split прогнал бы и все

local function split(split_str, splitter) local value = {} local index = 1 for half in string.gmatch(split_str,'([^'..splitter..']+)') do value[index] = half index=index+1 end return value, index end

Group Butler [beta]
10.01.2018
11:44:34
Hi Denys!

Nick
10.01.2018
11:52:27
а чем из сваггера/опенапи генерить код для сервера? гугл ничего не находит

Google
fgntfg
10.01.2018
12:32:38
можно без индекса

вообще map надо в стандарт языка вкорячить, и редус

Yuriy
10.01.2018
12:40:50
Да без индекса можно

я просто ег осебе передавал как отдельно знаение где то и не стал удалять

Akamit
10.01.2018
12:41:20
Хотя не вакт что так получится
я так сделал for w in data:gmatch("([^,]+)") do for v,k in w:gmatch("(%w+)=(%d+)") do app.noop(v,k) arr[v]=k end end

Yuriy
10.01.2018
12:41:41
Ну и норм.

вообще при всей бедности интерфейса у луа работа со строками довольно гибкая

Akamit
10.01.2018
13:09:59
а зачем первый match вообще нужен?
строка так выглядит a=1;b=2;c=3

fgntfg
10.01.2018
13:11:30
И? Зачем её быть на подстроки, чтоб их потом парсить?

Akamit
10.01.2018
13:12:05
а ну да)

Snusmumriken
10.01.2018
13:12:46
привет, подскажите пожалуйста, как лучше распарсить такую строку a=1;b=2;c=3 на переменные? (ключ и значение)
str = 'a=1;b=2;c=3' res = {} for key, value in str:gmatch';*([^;=]+)=([^;=]+);*' do key, value = (tonumber(key) or key), (tonumber(value) or value) res[key] = value end



fgntfg
10.01.2018
13:16:55
если строка заканичвается на ; то всё будет не очень хорошо

Akamit
10.01.2018
13:17:01
вот только все после точки отрезает :(

fgntfg
10.01.2018
13:18:03
Вот теперь я не вижу багов.

Snusmumriken
10.01.2018
13:18:54
arr = {} for v,k in data:gmatch("(%w+)=(%d+)") do arr[v]=k end
Смотри. Если у тебя числа в качестве ключей-значений, в массив уйдут строковые варианты ключей/значений. У меня, правда, насильное преобразование к числам, если возможно.

fgntfg
10.01.2018
13:19:30
Пофиксил
а две ; подряд не заставит ли цикл завершиться? Я хоть убей не помню, что вернёт match

Google
fgntfg
10.01.2018
13:20:00
Ну тогда гуд

Akamit
10.01.2018
13:20:25
str="ssrc=1465325083;themssrc=4202564892;lp=0;rxjitter=0.000000;rxcount=23;txjitter=0.000499;txcount=32;rlp=0;rtt=0.000000" arr = {} print(str) for v,k in str:gmatch("(%w+)=(%d+)") do print(v,k) arr[v]=k end

Snusmumriken
10.01.2018
13:20:35
Ну тогда гуд
Ещё раз пофиксил на любое количество ';', надо проверить ))) Да, пашет.

Akamit
10.01.2018
13:20:35
# lua 2.lua ssrc=1465325083;themssrc=4202564892;lp=0;rxjitter=0.000000;rxcount=23;txjitter=0.000499;txcount=32;rlp=0;rtt=0.000000 ssrc 1465325083 themssrc 4202564892 lp 0 rxjitter 0 rxcount 23 txjitter 0 txcount 32 rlp 0 rtt 0

fgntfg
10.01.2018
13:21:06
%d замени на %w и напиши value = tonumber(value)

Admin


fgntfg
10.01.2018
13:21:48
кажется [[:digit?] тоже должно помочь

или я уже языки путаю

Akamit
10.01.2018
13:24:32
%d замени на %w и напиши value = tonumber(value)
нет, все равно съедает после точки :(

Snusmumriken
10.01.2018
13:25:56


fgntfg
10.01.2018
13:25:59
А есть еще извращенная запись без первого нуля .22

Snusmumriken
10.01.2018
13:27:03
А ещё есть шестнадцатиричка: 0xFF. А ещё есть римское писание: XXI И шумерские засечки тоже никто не отменял )))

fgntfg
10.01.2018
13:27:19
а юникод последнее поддерживает?

Snusmumriken
10.01.2018
13:28:27


Akamit
10.01.2018
13:28:51
спасибо, (%d+%.?%d*) помогло

fgntfg
10.01.2018
13:28:52
Значит кастом шрифт для Lёв

Snusmumriken
10.01.2018
13:29:02
На глифах

Akamit
10.01.2018
13:29:42
спасибо, (%d+%.?%d*) помогло
а вот почему в данном случае %w+ не работает?

Snusmumriken
10.01.2018
13:30:01
спасибо, (%d+%.?%d*) помогло
Моя доброта не знает границ, будешь потом внукам рассказывать, а они не поверят.

Google
Akamit
10.01.2018
13:30:09
просто интерпретировать число как строку с точкой

Snusmumriken
10.01.2018
13:30:32
а вот почему в данном случае %w+ не работает?
Потому что точка - не буква и не цифра а знак препинания. .* - покатит, но оно вообще всё сгребёт.

спасибо, (%d+%.?%d*) помогло
О, кстати, отрицательные числа оно не заберёт. А вот это - заберёт. '%-?%d+%.?%d*' Ну вот ты и увидел "класс настоящих чисел" в формате регулярок. Мнимые числа и константы типа e/pi не обработаются, ну и хрен с ними.



С разными системами счисления тоже работает: > print(tonumber('11111011111', 2)) 2015 Офигительно крутая штука.

Alexander
10.01.2018
14:04:50
https://en.wikipedia.org/wiki/Cuneiform_Numbers_and_Punctuation юникод клинопись отлично поддерживает. а вот шрифты --- не особо поддерживают :)

Страница 221 из 307