NScripter Ver.18.00at GAMEDEVNScripter Ver.18.00 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト294:名前は開発中のものです。 11/11/03 09:54:35.36 I5e3eJcR -- 行頭禁則処理 -- 行頭禁則文字は、前の文字にくっつく性質を持つ。 cursor = 1 while cursor < #letters do letter1 = letters[cursor+1] -- 文字を一つ取得。 if no_head[letter1] then -- それが行頭禁則文字だったら letters[cursor] = letters[cursor]..letter1 table.remove(letters, cursor+1) else cursor = cursor + 1 end end -- 行末禁則処理 -- 行末禁則文字は、後の文字にくっつく性質を持つ。 cursor = 1 while cursor < #letters do letter1 = letters[cursor] -- 文字を一つ取得。 if no_tail(letter1) then -- それが行末禁則文字だったら letter1 = letter1..table.remove(letters, cursor+1) letters[cursor] = letter1 end cursor = cursor + 1 end これでやっと禁則処理ができた。 次は、表示する際の処理。 295:名前は開発中のものです。 11/11/03 10:08:05.81 I5e3eJcR local width_max = 40 -- テキストウィンドウの幅(単位:文字数)ただし、半角で。 function next_line(letters) -- 次の一行を返す。引数にはlettersを与える。 if #letters<1 then return nil end -- 表示する内容がない場合はnilを返す。 local text = "" if letters[1]==" " then table.remove(letters, 1) -- 先頭が半角スペースなら表示しない。 else if width_max < text:len()+letters[1]:len() then -- 現在の内容と次に来る文字の長さの合計が、最大幅を超える場合、終了。 return text else text = text .. table.remove(letters, 1) end end end local all_text = "" -- 現在のテキストウィンドウの内容 while true do local line = next_line() -- 次の一行を取得。 if line then if all_text:len()>0 then -- 既に何か表示していれば NSExec("_br") -- 改行 all_text = all_text.."\\" end NSExec("_puttext \""..line.."/\"") all_text = all_text..line else -- 表示内容がないなら、終了 break end end 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch