Size: a a a

2020 November 08

A

Alex in pro.lua
Arslan Yulbirdin
local file = gg.EXT_STORAGE..'/xxml.txt'

local links = {}

if io.open(file,"r") then
   for line in io.lines(file) do
     _, links[#links+1], _ = line:match("(<Key>)(.-)(</Key>)")
   end
 end


print(links)
То что надо)
источник

A

Alex in pro.lua
источник

A

Alex in pro.lua
Спасибо огромное!
источник

S

Snusmumriken in pro.lua
_, _
Матчи просто (<Key>)(.*?)(<\/Key>)
<Key>(.-)</Key>

Можно использовать и в match и в gmatch.
источник

S

Snusmumriken in pro.lua
А ещё я КАК РАЗ пару дней назад катал фигню, для поиска сбалансированных шаблончиков.
источник

S

Snusmumriken in pro.lua
Переслано от Snusmumriken
Написать функцию, которая в строке будет искать сбалансированные шаблоны.
Например, вот такое:

html = [[
<html>
 <div>
   <div>
   </div>
   <span/>
 </div>
</html>
]]

=string_findBalanced(html, "<div>", "</div>")

><div>
   <div>
   </div>
   <span/>
 </div>
источник

S

Snusmumriken in pro.lua
Переслано от Snusmumriken
Ну кароч примерно вот так.
local huge, min = math.huge, math.min
local function string_bfind(str, head, tail, offset, ex_bounds, plain)
 local header_start, header_end = str:find(head, offset or 1, plain)
 if not header_start then return nil end
 local cursor  = header_end
 local last_tail_start = 0
 local counter = 1
 while counter > 0 do
   local ha, hb = str:find(head, cursor + 1, plain)
   if not ha then ha, hb = huge, huge end
   local ta, tb = str:find(tail, cursor + 1, plain)
   if not ta then return nil end
   counter = counter + (ha < ta and 1 or -1)
   cursor = min(hb, tb)
   last_tail_start = ta
 end
 if ex_bounds then
   local a, b = header_end + 1, last_tail_start - 1
   return str:sub(a, b), a, b
 end
 return str:sub(header_start, cursor), header_start, cursor
end

local str = "<html><div><div></div><span/></div></html>"
print(string_bfind(str, "<div>", "</div>") )

Тупой подсчёт вхождений, но фичеватость присутствует. Можно ещё оптимизировать на пару курсоров, чтобы не переискивало каждый раз начало и конец, но пока впадлу.
источник

H

Hello, World! in pro.lua
Как это использовать?
источник

S

Snusmumriken in pro.lua
а) Прочитать доку,
б) Расковырять либу и понять как её использовать.
источник

H

Hello, World! in pro.lua
Snusmumriken
а) Прочитать доку,
б) Расковырять либу и понять как её использовать.
Понятно, а как её импортировать в мой файл?
источник

S

Snusmumriken in pro.lua
require"forms"
источник

H

Hello, World! in pro.lua
requere "forms"
источник

H

Hello, World! in pro.lua
Snusmumriken
require"forms"
Либа должна в одной папке лежать?
источник

H

Hello, World! in pro.lua
с точкой входа?
источник

S

Snusmumriken in pro.lua
Она должна лежать там, где её найдут.
источник

H

Hello, World! in pro.lua
Snusmumriken
Она должна лежать там, где её найдут.
В той же директории что и main.lua?
источник

S

Snusmumriken in pro.lua
Hello, World!
В той же директории что и main.lua?
Не факт
источник

S

Snusmumriken in pro.lua
Вот например где ищет мой интерпретатор.
Первая половина — попытки подгрузить lua-либу, вторая — сишные динамические либы.

Посмотри где ищет твой интерпретатор. Но ты, разумеется, можешь добавить путь в package.path, работает примерно как переменная PATH.
источник

H

Hello, World! in pro.lua
> require "foo"
stdin:1: module 'foo' not found:
       no field package.preload['foo']
       no file '/usr/local/share/lua/5.3/foo.lua'
       no file '/usr/local/share/lua/5.3/foo/init.lua'
       no file '/usr/local/lib/lua/5.3/foo.lua'
       no file '/usr/local/lib/lua/5.3/foo/init.lua'
       no file '/usr/share/lua/5.3/foo.lua'
       no file '/usr/share/lua/5.3/foo/init.lua'
       no file './foo.lua'
       no file './foo/init.lua'
       no file '/usr/local/lib/lua/5.3/foo.so'
       no file '/usr/lib/x86_64-linux-gnu/lua/5.3/foo.so'
       no file '/usr/lib/lua/5.3/foo.so'
       no file '/usr/local/lib/lua/5.3/loadall.so'
       no file './foo.so'
stack traceback:
       [C]: in function 'require'
       stdin:1: in main chunk
       [C]: in ?
источник

S

Snusmumriken in pro.lua
Вот добавь куда-нибудь сюда forms.lua, и оно точно найдёт.
источник