Lua奇技淫巧之三——取得程序的运行路径

WINDOWS下,想取得程序的运行路径可以这么做: arg[0]:match('.*\\')
2022-01-25 17:15 | 阅读 677 次 | 评论 0 条

Lua奇技淫巧之二——给Lua添加switch

Lua没有switch语句,我们就给它加一个: 一、简单的switch: function switch(SwitchVal) return function(SwitchTable) local ReFunc = SwitchTable[SwitchVal] if type(ReFunc) ~= "function" then ReFunc = SwitchTable[ReFunc] or SwitchTable.default end return ReFunc and ReFunc() end end 优点是实...
2019-08-28 17:35 | 阅读 3310 次 | 评论 0 条

如何在Lua中取得本机名和本机IP地址

local socket = require('socket') local MyHostName = socket.dns.gethostname() --本机名 local MyIP = socket.dns.toip(MyHostName) --本机IP
2018-07-18 11:59 | 阅读 8902 次 | 评论 2 条

让lua for windows自带的SciTE更好的支持中文

lua for windows自带的那个SciTE对中文支持不怎么好,按下面的方法改一下就行了: 启动scite, 照下面的顺序点击菜单:Options, Open User Options file, 打开Sciteuser.properties code.page=936 output.code.page=936 character.set=134 font.monospace=font:宋体,size:10 font.base=font:宋体,size:10 保存,关闭
2018-07-17 11:41 | 阅读 2153 次 | 评论 0 条

如何在Lua中执行命令行命令时捕获返回内容/不显示命令行窗口

Lua中,我们一般用os.execute()执行命令行命令,此时会显示命令行窗口,并返回系统状态码。 但我们有时需要捕获返回内容/不显示命令行窗口,则可以使用函数:io.popen(),这个函数也可以执行命令行命令,但是返回的是一个文件,同时不显示命令行窗口。 例子: local ts= io.popen('dir') local s = ts:read("*all") print(s)
2018-05-11 10:52 | 阅读 3442 次 | 评论 2 条

Lua使用luacom模块操作EXCEL之二——设置框线、颜色等

require 'luacom' local excel = luacom . CreateObject( 'Excel.Application' ) excel . Visible = true local book = excel . Workbooks:Add() local sheet = book . Worksheets( 1 ) sheet . Name = 'gty' local range = sheet:Range( 'A1:A10' ) local cell = sheet . Cells( 1 , 1 ) sheet:Range( 'D3:D6' ...
2018-04-03 14:53 | 阅读 2943 次 | 评论 0 条

Lua使用luacom模块操作EXCEL

--导入luacom模块 require('luacom') require('lfs') --导入lfs模块用于取得当前路径,和操作EXCEL无关 local sMainPath = lfs.currentdir() --取得当前路径 --创建EXCEL对象 MyExcel = luacom.CreateObject("Excel.Application") --创建EXCEL对象 --MyExcel = luacom.CreateObject("Ket.Application") --创建WPS表格对象,新版的WPS已经兼容了MSO,就不用这...
2018-04-03 14:45 | 阅读 9877 次 | 评论 1 条

Lua奇技淫巧之一——模拟Pascal中的with

Pascal(Delphi)、VB中都有一个with关键字,可以帮助程序员减少大量的输入、提高效率。Lua 中没有这个关键字,但我们可以利用以下方式模拟。 例: a={} setfenv(function() a=1 b=2 end,a)() 以上代码效果等于: a.a=1 a.b=2 等价于Pascal中的: with a do begin a:=1; b:=2; end; 当然,这样只能用于赋值,如果需要在a{}中写函数就不能这么写了。这时可以这样写: a=s...
2018-03-29 12:01 | 阅读 1997 次 | 评论 0 条

欧拉筛求素数,果然非常快

看到一个求素数的题目,忽然想试试欧拉筛有多快。 题目:求一千万内素数的个数。 先看最普通的筛子:1077秒 T = os.time() --求iMaxN内的素数 local iMaxN = 10000000 --普通筛子 local iSS = {} --素数数组 local iSZ = {} --筛子 for i = 1, iMaxN do iSZ[i] = i end --过筛求出所有素数 for i = 2, math.sqrt(iMaxN) do for j = i + 1, iMaxN do if ...
2018-03-23 16:54 | 阅读 2942 次 | 评论 0 条
浏览40930次
最新评论