Lua简介

整理自 http://sunxiunan.com/?p=1239

lua是一个很有意思的编程语言,我是用它写base64编码辅助工具时候发现的。

lua是巴西里约热内卢大学的一个研究项目,最新版本5.1,真正变成一个人人皆知的编程语言还是因为魔兽世界这个网络游戏。因为暴雪选择了lua作为插件语言,一时间变得众人皆知。现在国内也有不少网络游戏使用lua作为脚本语言。

 

lua的特点一个是小,整个vm,编译器以及第三方库加起来可能也不过就几兆,vm可以单独运行,大概也就需要100k左右内存,非常适合嵌入式设备或者掌上设备使用,比如psp就有一个lua player,而google的gphone最新版操作系统也内置了lua的脚本支持。现在几乎所有的流行操作系统都可以运行lua,这要归功于lua使用了标准的ansi c实现。

lua可以用来编写小的utility,比如十几二十行就能完成的,我选择lua作为学习对象的原因一个是它代码量小而且极为精致,另外实用性也很强,通过luainterface,luacom,luasocket这些类库,可以完成大多数常见任务。

lua的网站是www.lua.org,可以下载最新的版本lua-5.1.4.tar.gz,源代码不过才200k,所以我选择用它来学习如何构建一个工业级的c程序。另外比较有用的lua网站一个是www.lua-users.org,另外还有一个是lua开源项目集合luaforge.net,可以下载到大量有用的projects。

如果是windows用户,可以到luaforwindows.luaforge.net下载Lua for windows,这是一个大概15M左右的安装文件,包含了大量实用的lua第三方库,另外还有一个可以调试运行的编辑器。

我第一个使用lua的例子是读进一个目录文件,然后处理。

这个文件是这样生成的,在命令行下输入 dir *.txt > aaa.txt

这样生成了一个aaa.txt,问题是我只想要文件名不需要大小等其他信息,文件名长度也是固定的20个字符(包括扩展名),所以采用下面的脚本处理这个aaa.txt。

filename = [[c:/aaa.txt]] filename_b = [[c:/bbb.txt]] local f = assert(io.open(filename)) local f_w = assert(io.open(filename_b,'w')) while true do local buffer = f:read("*l") if not buffer then break end print(buffer) if string.len(buffer)>36 then newBuffer=string.sub(buffer,37) --WindowsXP使用正常。 print(newBuffer) f_w:write(newBuffer) f_w:write('/n') end end f:close() f_w:close()

其中的io以及string都是lua内置的模块。简单快速,而且功能不亚于python、ruby这样的脚本语言。

你可能感兴趣的:(windows,脚本,lua,buffer,语言,网络游戏)