導航:首頁 > 程序命令 > lua調用命令行

lua調用命令行

發布時間:2023-06-01 23:22:49

❶ 請問自己的軟體如何運行Lua腳本

programming in lua 有相關的例子,一般腳本語言和c/c++之類的互相調用分兩類,一類是擴展,就是將c/c++模塊封裝起來給腳本語言用,用swig做封裝很方便的,一類是嵌入,就是在c/c++等應用中嵌入lua引擎,一般是用來分離經常變化的邏輯部分,比如WOW就是用lua語言作為擴展,用戶可以編寫lua腳本來完成一些特定功能的機器人。你要做的就是使用lua c api來在你的程序中執行lua。類似這種:

int iErr = 0;
lua_State *lua = lua_open (); // Open Lua
luaopen_io (lua); // Load io library
if ((iErr = luaL_loadfile (lua, "test.lua")) == 0)
{
// Call main...
if ((iErr = lua_pcall (lua, 0, LUA_MULTRET, 0)) == 0)
{
// Push the function name onto the stack
lua_pushstring (lua, "helloWorld");
// Function is located in the Global Table
lua_gettable (lua, LUA_GLOBALSINDEX);
lua_pcall (lua, 0, 0, 0);
}
}
lua_close (lua);

❷ lua文件怎麼打開怎麼使用

1.打開

lua文件使用一般的文本編輯工具就可以打開和編輯了,linux下使用自帶的vim編輯器,windows下使用自帶的記事本就可以。

2.使用

要使用lua文件,必須要安裝一個lua的解析器。因為lua語言是種腳本語言,類似於javascript,運行時需要lua解釋器。

(1)linux環境下這樣安裝和使用:

curl -R -O http://www.lua.org/ftp/lua-5.3.0.tar.gz

tar zxf lua-5.3.0.tar.gz

cd lua-5.3.0

make linux test

make install

接下來我們創建一個 HelloWorld.lua 文件,代碼如下:

print("Hello World!")

執行以下命令運行:

$ lua HelloWorld.lua

(2)windows下安裝和使用

在windows下安裝 Lua可以使用一個叫"SciTE"的IDE環境來執行lua程序,下載地址為:

Github 下的SciTE下載地址

下載後雙擊安裝後即可在該環境下編寫 Lua 程序並運行。

❸ Lua常用的文件操作

一、基本的文件讀寫

(1) io.open

功能:按指定的模式打開一個文件,成功則返迴文件句柄,失敗則返回nil+錯誤信息

file = io.open (filename [, mode])

mode 的值有:

r  以只讀方式打開文件,該文件必須存在。

w  打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。

a   以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。(EOF符保留)

r+  以可讀寫方式打開文件,該文件必須存在。

w+  打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。

a+   與a類似,但此文件可讀可寫

b   二進制模式,如果文件是二進制文件,可以加上b

+   號表示對文件既可以讀也可以寫

(2)  file:write(...)

功能:按指定的參數格式輸出文件內容,參數必須為字元或數字,若要輸出其它值,則需通過tostring或string.format進行轉換

(3)  file:close()

功能:關閉文件,我抽U盤才懶得'安全刪除硬體',一般都直接拔了.這個命令也一樣,反正lua有垃圾自動回收........

(4) io.lines ([filename])

功能:打開指定的文件filename為讀模式並返回一個迭代函數,每次調用將獲得文件中的一行內容,當到文件尾時,將返回nil,並自動關閉文件

(5) io.popen ([prog [, mode]])

功能:開始程序prog於額外的進程,並返回用於prog的文件句柄(並不支持所有的系統平台)

二、常用文件操作

(1)判斷文件是否存在

function checkFileExist(path)

        local file = io.open(path, "rb")

        if file then file:close() end

        return file ~= nil

 end

(2)判斷文件夾是否存在()

os.execute("cd "..dirPath)

返回值為0便是存在,不為0時表示不存在

(3)創建文件夾

os.execute("mkdir "..dirPath)

(4)刪除文件

os.remove(filepath)

eg:創建多層文件夾

Configs.debugFilePath = "E:/test1/test2/test3/test4/test.txt"

function checkDirExist()

    local dirlist = string.split(Configs.debugFilePath,"/")

    local filenamelen = string.len(dirlist[#dirlist])

    local dirpath = string.sub(Configs.debugFilePath,1,string.len(Configs.debugFilePath)-filenamelen-1)

    local path_tb={}

    local new_path=""

    -- 分割路徑保存到table

    for s in string.gmatch(dirpath,"([^'/']+)") do

        if s~=nil then

            table.insert(path_tb,s)

        end

    end

    -- 遍歷並拼接路徑檢測是否存在,不存在則新建

    for k,v in ipairs(path_tb) do

        if k==1 then

            new_path=v

        else

            new_path=new_path.."\\"..v

        end   

        if os.execute("cd "..new_path) ~= 0 then

            os.execute("mkdir "..new_path)

        end

    end

end

(5)獲得文件夾下的所有文件路徑(windows)

io.popen("dir path /b /s")

eg:

local dirinfo= io.popen("dir path /b /s")

local all = dirinfo:read("*all")

閱讀全文

與lua調用命令行相關的資料

熱點內容
臟數據java 瀏覽:290
游戲解壓怎麼設置 瀏覽:782
會聲會影如何壓縮視頻 瀏覽:57
閱讀app小說怎麼轉換成txt 瀏覽:65
c語言編程數字變時間 瀏覽:655
迷你編程第五天初級寶箱怎麼弄 瀏覽:839
刺激體驗服如何更新伺服器 瀏覽:934
怎麼把照片做成新的文件夾 瀏覽:466
安卓手機沒有聲音均衡器怎麼辦 瀏覽:506
吃雞國際服為什麼會伺服器匆忙 瀏覽:248
微信中如何打開定位伺服器 瀏覽:203
java並發編程書籍 瀏覽:280
android601源碼 瀏覽:788
程序員離職了還能幹嘛 瀏覽:156
少林功法pdf 瀏覽:471
安卓80版本小游戲怎麼玩 瀏覽:632
奇書pdf 瀏覽:836
伺服器的管理口有什麼用 瀏覽:643
澳洲加密資產新政策 瀏覽:157
哈利波特連接伺服器失敗什麼意思 瀏覽:234