メニュの更新
Luaridaのメニュプログラムをバージョンアップしました。
メニュの下から2番目に、「Luaファイル直接実行」を追加しました。ファイル名を直接入力して実行できます。間違ったファイル名を入力するとエラーになります。
Luaridaメニュ更新アプリを用いて更新してください。
参考に新規メニュプログラムを下記に書いておきます。
------------------------------------------ --アプリ選択メニュ v1.02 ------------------------------------------ --toast( "タッチでLuaridaを終了します" );touch(3);system.exit() --関数宣言-------------------------------- main={} --mainメソッド split={} --指定キャラクタの前後で2つの文字列に分ける directlua={} --実行するluaファイル名の入力 --グローバル変数宣言---------------------- Ver = "v1.02" Menu={ "はじめに, hajimeni.lua" ,"exitサンプル, exitsample.lua" ,"文字表示サンプル, textsample.lua" ,"グラフィックサンプル, graphicsample.lua" ,"文字入力サンプル, textinput.lua" ,"画面タッチサンプル,touchsample.lua" ,"Luaファイル直接実行, lua" ,"ルアリダアプリ選択メニュ "..Ver..", luarida.lua" } LuaridaPath="/sdcard/luarida" --luaファイルを保存しているPath ------------------------------------------ mt={} mt.__newindex=function(mtt,mtn,mtv) dialog( "Error Message", "宣言していない変数 "..mtn.." に値を入れようとしています", 0 ) toast("画面タッチで実行を続けます", 1) touch(3) end mt.__index=function(mtt,mtn) dialog( "Error Message", "変数 "..mtn.." は宣言されていません", 0 ) toast("画面タッチで実行を続けます", 1) touch(3) end setmetatable(_G,mt) --------以下が実プログラム---------------- ------------------------------------------ --文字の分解 ------------------------------------------ function split(str, d) local s = str local t = {} local p = "%s*(.-)%s*"..d.."%s*" local f = function(v) table.insert(t, v) end if s ~= nil then string.gsub(s, p, f) f(string.gsub(s, p, "")) end return t end ------------------------------------------ -- 実行するluaファイル名の入力 ------------------------------------------ function directlua() local luafilename, a = editText("実行するluaファイル名の入力") local pos,str local i = 0 if( a~=nil and a==1 and luafilename~=nil and luafilename~="" )then --拡張子のチェック pos = string.find(luafilename, "." , i, true ) while(pos~=nil)do i = pos + 1 pos = string.find(luafilename, "." , i, true ) end str = string.sub(luafilename, i, string.len(luafilename) ) if( i==0 or (str~="lua" and str~="luac") )then luafilename = luafilename..".lua" --.luaの追加 end else luafilename = "luarida.lua" end return luafilename end ------------------------------------------ --メインプログラム ------------------------------------------ function main() local t={} local tmenu={} local a, i local key local value local x, y, b canvas.drawCls( color(0,0,255) ) --背景を青に item.clear() --item Listのclear --menuテーブルを分解してitem Listに追加していく for key,value in pairs( Menu ) do t = split( value, "," ) item.add( t[1], 0 ) tmenu[key] = t[2] --実行ファイル名をtmenuに取得 end --リスト選択 a = item.list("Luarida Ver."..system.version().."\n2タッチでエディタが立ち上がります" ) if( a~=0 )then for i=1, 1000 do x, y, b = touch() if( b~=1 )then if( tmenu[a]=="lua" )then tmenu[a] = "luarida.lua" end --エディタ起動 --system.impCallActionView("file://"..LuaridaPath.."/"..tmenu[a], "text/plain") system.expCall( "info.tdoc.sheditor.EditMain", "file://"..LuaridaPath.."/"..tmenu[a], "text/plain" ) break end end if( tmenu[a]=="lua" )then tmenu[a] = directlua() end system.setrun( LuaridaPath.."/"..tmenu[a] ) else dialog( "Luaridaを終了します", "また使ってね", 1 ) --Luaridaを強制終了します system.exit() end end main()