Sandbox91
From Metabolomics.JP
(Difference between revisions)
Line 1: | Line 1: | ||
{{#def:page|Test}} | {{#def:page|Test}} | ||
{{#lua: | {{#lua: | ||
− | for line in string.gmatch(stdin, "&&{{#var:page}}([^ | + | --%% 前処理 %%-- |
− | print(line .. "<br>") | + | local list = {} -- データリスト |
+ | local flag = {} -- 最下層のアイテムかどうか | ||
+ | local i, j, data, index, leve, prev | ||
+ | i = 0; index = 0; level = 0; prev = 0 | ||
+ | |||
+ | --%% データ整理 %%-- | ||
+ | for line in string.gmatch(stdin, "&&{{#var:page}}([^&]+)") do | ||
+ | --%% -の数を調べる %%-- | ||
+ | data = string.gsub(line, "^-+", "", 1) --%% 先頭の-を削除する %%-- | ||
+ | level = string.len(line) - string.len(data) --%% -を削除した文字列と元の文字列の長さを比較する %%-- | ||
+ | |||
+ | --%% データを配列へ格納 %%-- | ||
+ | list[i] = data | ||
+ | |||
+ | --%% 最下層を調べ、最下層ならflagをセットする %%-- | ||
+ | if(prev > level) then | ||
+ | index = i | ||
+ | elseif(prev < level) then | ||
+ | for j = i-1, index, -1 do | ||
+ | flag[j] = true | ||
+ | end | ||
+ | index = i | ||
+ | end | ||
+ | |||
+ | prev = level; | ||
+ | i = i + 1 | ||
+ | |||
+ | -- print(line .. "-" .. string.len(data) .. "-" .. string.len(line) .. "<br>") | ||
end | end | ||
+ | |||
+ | --%% 表示処理 %%-- | ||
|{{#searchline:-|Index|{{#var:page}} }} }} | |{{#searchline:-|Index|{{#var:page}} }} }} |
Revision as of 22:18, 21 January 2009