「モジュール:テスト」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
タグ: 取り消し |
||
2行目: | 2行目: | ||
function p.hundred(frame) | function p.hundred(frame) | ||
a,b,m,n,o = {},{},{},{},{} | a,b,m,n,o = {},{},{},{},{} | ||
s = tonumber(frame.args[3]) or 100 | if frame.args[3] then | ||
s = tonumber(frame.args[3]) or 100 | |||
if string.find(frame.args[1],frame.args[2]) then | |||
a[1],b[1] = string.find(frame.args[1],frame.args[2]) | |||
m[1] = string.char(string.byte(frame.args[1],a[1],b[1])) | |||
n[1] = a[1] == 1 and "" or string.char(string.byte(frame.args[1],1,a[1]-1)) | |||
g = n[1]..string.rep(m[1],100) | |||
if s >= 2 then | |||
for i = 2,s do | |||
a[i],b[i] = string.find(frame.args[1],frame.args[2],b[i-1]+1) | |||
m[i] = string.char(string.byte(frame.args[1],a[i],b[i])) | |||
n[i] = a[i] == b[i-1]+1 and "" or string.char(string.byte(frame.args[1],b[i-1]+1,a[i]-1)) | |||
end | |||
for i = 2,s do | |||
g = g..n[i]..string.rep(m[i],100) | |||
end | |||
end | |||
o[1] = b[#b] == #frame.args[1] and "" or string.char(string.byte(frame.args[1],b[#b]+1,#frame.args[1])) | |||
return g..o[1] | |||
else | |||
m[1] = frame.args[1] | |||
return string.rep(m[1],100) | |||
end | end | ||
else | else | ||
if frame.args[2] then | |||
if string.find(frame.args[1],frame.args[2]) then | |||
a[1],b[1] = string.find(frame.args[1],frame.args[2]) | |||
m[1] = string.char(string.byte(frame.args[1],a[1],b[1])) | |||
n[1] = a[1] == 1 and "" or string.char(string.byte(frame.args[1],1,a[1]-1)) | |||
o[1] = b[1] == #frame.args[1] and "" or string.char(string.byte(frame.args[1],b[1]+1,#frame.args[1])) | |||
return n[1]..string.rep(m[1],100)..o[1] | |||
else | |||
m[1] = frame.args[1] | |||
return string.rep(m[1],100) | |||
end | |||
else | |||
m[1] = frame.args[1] | |||
return string.rep(m[1],100) | |||
end | |||
end | |||
end | end | ||
return p | return p |
2年1月14日 (I) 14:03時点における版
このモジュールについての説明文ページを モジュール:テスト/doc に作成できます
local p = {}
function p.hundred(frame)
a,b,m,n,o = {},{},{},{},{}
if frame.args[3] then
s = tonumber(frame.args[3]) or 100
if string.find(frame.args[1],frame.args[2]) then
a[1],b[1] = string.find(frame.args[1],frame.args[2])
m[1] = string.char(string.byte(frame.args[1],a[1],b[1]))
n[1] = a[1] == 1 and "" or string.char(string.byte(frame.args[1],1,a[1]-1))
g = n[1]..string.rep(m[1],100)
if s >= 2 then
for i = 2,s do
a[i],b[i] = string.find(frame.args[1],frame.args[2],b[i-1]+1)
m[i] = string.char(string.byte(frame.args[1],a[i],b[i]))
n[i] = a[i] == b[i-1]+1 and "" or string.char(string.byte(frame.args[1],b[i-1]+1,a[i]-1))
end
for i = 2,s do
g = g..n[i]..string.rep(m[i],100)
end
end
o[1] = b[#b] == #frame.args[1] and "" or string.char(string.byte(frame.args[1],b[#b]+1,#frame.args[1]))
return g..o[1]
else
m[1] = frame.args[1]
return string.rep(m[1],100)
end
else
if frame.args[2] then
if string.find(frame.args[1],frame.args[2]) then
a[1],b[1] = string.find(frame.args[1],frame.args[2])
m[1] = string.char(string.byte(frame.args[1],a[1],b[1]))
n[1] = a[1] == 1 and "" or string.char(string.byte(frame.args[1],1,a[1]-1))
o[1] = b[1] == #frame.args[1] and "" or string.char(string.byte(frame.args[1],b[1]+1,#frame.args[1]))
return n[1]..string.rep(m[1],100)..o[1]
else
m[1] = frame.args[1]
return string.rep(m[1],100)
end
else
m[1] = frame.args[1]
return string.rep(m[1],100)
end
end
end
return p