Lua 文件读取

Lua 文件读取,第1张

--移除文件

function Mkidr.removeFile(path)

              io.writefile(path, "")

               os.remove(path)

end

--读取文件

function Mkidr.readFile(path)

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

                  if file then

                              local content = file:read("*all")

                               io.close(file)

                               return content

                    end

             return nil

end

-- Lua   lfs 库的使用

lfs.attributes(filepath [, aname]) 获取路径指定属性

lfs.chdir(path) 改变当前工作目录,成功返回true,失败返回nil加上错误信息

lfs.currentdir 获取当前工作目录,成功返回路径,失败为nil加上错误信息

lfs.dir(path) 返回一个迭代器(function)和一个目录(userdata),每次迭代器都会返回一个路径,直到不是文件目录为止,则迭代器返回nil

lfs.lock(filehandle, mode[, start[, length]])

lfs.mkdir(dirname)  创建一个新目录

lfs.rmdir(dirname) 删除一个已存在的目录,成功返回true,失败返回nil加上错误信息

-- Lua   io *** 作

io.open (filename [, mode])

功能:按指定的模式打开一个文件,成功则返回文件句柄,失败则返回nil+错误信息

mode:

"r": 读模式 (默认)

"w": 写模式

"a": 添加模式

file:write(...)

功能:按指定的参数格式输出文件内容,参数必须为字符或数字,若要输出其它值,则需通过tostring或string.format进行转换

file:close()

功能:关闭文件,lua有垃圾自动回收........

io.exists()

测试文件是否存在,如果存在返回true

-- Lua   os   *** 作

os.remove (filename)

功能:删除文件或一个空目录,若函数调用失败则返加nil加错误信息

os.rename (oldname, newname)

功能:更改一个文件或目录名,若函数调用失败则返加nil加错误信息

os.setlocale (locale [, category])

功能:设置程序的当前设置,函数返回最新的值,失败则返回nil

os.time ([table])

功能:按table的内容返回一个时间值(数字),若不带参数则返回当前时间table的字段:

*** 作方法如下:

nLog

_1.init

init(‘0’,1)_高速程序,当前的游戏是横屏游戏,并且home建在右面

function 点击(x,y)

_ body

touchDown(0, x , y)_模拟手指触摸位置 点下

mSleep(20) --停止20ms

touchMove(0, x , y)-- 模拟手指做轻微偏移

mSleep(20)

touchUp(0, x , y) _ 模拟手指抬起

while (true) do

点击(265, 1427)

mSleep(2000)

end

Lua是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放,其设计目的是为了嵌入应用程序种,从而为程序提供灵活的扩展和定制功能。

Lua是巴西里约热内卢天主教大学里的一个研究小组,有Roberto Ierusalimschy 、Waldemar Cleles和Luiz Henrique de Figueriredo锁组成并与1993年开发。

当 Lua 调用 C 函数的时候,使用和 C 调用 Lua 相同类型的栈来交互。C 函数从栈中获取她的参数,调用结束后将返回结果放到栈中。为了区分返回结果和栈中的其他的值,每个 C 函数还会返回结果的个数(the  function  returns  (in  C)  the  number  of  results  it  is leaving on the stack.)。

// luacallcpp.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include <stdio.h>

//lua头文件

#ifdef __cplusplus

extern "C" {

#include "lua.h"  

#include <lauxlib.h>  

#include <lualib.h>  

}  

#else

#include <lua.h>

#include <lualib.h>

#include <lauxlib.h>

#endif

int static add(lua_State* L)

{

 //获取第一个参数

 double x=lua_tonumber(L,1)

 double y=lua_tonumber(L,2)

 //返回值压栈,压入两个返回值

 lua_pushnumber(L,x+y)

 lua_pushnumber(L,1000)

//返回值的个数,

 return 2

}

int _tmain(int argc, _TCHAR* argv[])

{

lua_State * L=NULL

/* 初始化 Lua */  

 L = lua_open()

/* 载入Lua基本库 */  

 luaL_openlibs(L)

/* 运行脚本 */  

 luaL_dofile(L, "./script/func.lua")

//函数入栈

 lua_pushcfunction(L,add)

 //设置全局函数名

 lua_setglobal(L,"Add")

 //调用lua函数LUACALLCPP来反调cpp中的add

 lua_getglobal(L,"LUACALLCPP")

 lua_pushnumber(L,10)

 lua_pushnumber(L,34.33)

 //两个参数,两个返回值

 lua_pcall(L,2,2,0)

 //取返回值二

 printf("lua call cpp return val is %f \n",lua_tonumber(L,-1))

 //取返回值一

 printf("lua call cpp return val is %f \n",lua_tonumber(L,-2))

 /* 清除Lua */  

 lua_close(L)

return 0

}

---------------------------------------

--region *.lua

--Date

--此文件由[BabeLua]插件自动生成

print("func.lua hava been loaded")

function LUACALLCPP(x,y)

-- 调用c++中的函数

return Add(x,y)

--print(Add(x,y))

end

--endregion

运行结果:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11443666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存