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
