我有一个标准的Windows文件名与路径.我需要从字符串中分割出文件名,扩展名和路径.
我目前正在简单地从最后寻找字符串.切断扩展,并获得第一个\路径.
我确信我应该能够使用Lua模式执行此操作,但是当我从字符串的右侧开始工作时,我仍然会失败.
例如.c:\ temp\test\myfile.txt应该返回
如果这是重复的话,请提前感谢道歉,但我可以找到很多其他语言的例子,但不是Lua的例子.
我正在尝试制作一个lua脚本,该脚本接受由逗号分隔的数字输入,并将其转换为字母,所以1 = ect,但是我还没有找到一种容易的方法,因为字符串libray输出a = 97,所以我不知道现在要去哪里,有什么帮助吗?
我需要从Lua中的嵌套表中获取值,我只是无法弄清楚如何做到这一点,我尝试了很多在线示例但没有工作.
任何帮助,将不胜感激
表
xy = { a={x=0,y=0},b={x=0,y=100}, c={x=0,y=200}}
Run Code Online (Sandbox Code Playgroud)
如果unpack(route)包含a和c,我如何从上表中获取x,y值.
我试过了
for _, v in pairs(xy) do
print(v[1], v[2])
end
Run Code Online (Sandbox Code Playgroud)
但我回来的只是零
我试图通过使用gmatch将字符串拆分成表格%S+.但是我遇到了错误:
尝试索引本地'args'(函数值)
以下是我认为存在问题的三行代码:
print(msg)
local args = string.gmatch(msg, "%S+")
print(args[1])
Run Code Online (Sandbox Code Playgroud)
所以第一行print(msg)只是打印一个正常的字符串.第二行是假设用空格分割该字符串,并将表存储在args中.第三行是假设打印表中的第一个值,但是它给出了上面显示的错误.谢谢.
对于 lua,根据本教程,可以通过名为 arg 的隐藏变量访问函数的三个点。
https://www.lua.org/pil/5.2.html
我写了一个非常简单的程序
require 'torch'
function triDot(...)
print('in triDot now')
print(arg)
for i,v in ipairs(arg) do
print('i is',i,'v is',v)
end
end
triDot('name1','name2')
Run Code Online (Sandbox Code Playgroud)
事实证明 arg 根本不包含 {'name1', 'name2'} 而是一堆系统参数。For 循环不会产生任何结果。
{ 0:“/home/jun/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th”-2:“-e”-5:“/home/jun/torch/install/bin /luajit" -3 : "package.path="/home/jun/.luarocks/share/lua/5.1/?.lua;/home/jun/.luarocks/share/lua/5.1/?/init.lua; /home/jun/torch/install/share/lua/5.1/?.lua;/home/jun/torch/install/share/lua/5.1/?/init.lua;"..package.path; package.cpath ="/home/jun/.luarocks/lib/lua/5.1/?.so;/home/jun/torch/install/lib/lua/5.1/?.so;"..package.cpath" -4 : " -e" -1 : "本地 k,l,_=pcall(require,"luarocks.loader") _=k 和 l.add_context("trepl","scm-1")" }
任何人都可以帮忙吗?
我在用lua编译时出错:
local action = {}
action["moving"] = {}
action["zooming"] = {}
action["moving"].state = false
action["zooming"].state = false
action.list = {"moving", "zooming"}
function action["moving"].f()
if CanAction("moving") and (love.keyboard.isDown("left") or love.keyboard.isDown("right") or love.mouse.isDown("l")) then
if action["moving"].state == false then
action["moving"].x, action["moving"].y = camera:mousePosition()
action["moving"].state = true
end
if action["moving"].state then
if love.mouse.isDown("l") then
camera:setPosition(-love.mouse.getX()*camera.scaleX + action["moving"].x, -love.mouse.getY()* camera.scaleY + action["moving"].y)
elseif love.keyboard.isDown("left") then
camera:move(-10*camera.scaleX, 0)
elseif love.keyboard.isDown("right") then
camera:move(10*camera.scaleX, 0)
end
end
else
ResetAction("moving")
end
end
Run Code Online (Sandbox Code Playgroud)
当我声明函数“function action[”moving”].f()”时,错误是关于那一行的,也许是因为我使用了这样的表,谢谢你的帮助。
local t = "{{2173,1},{2160,5}}"
print(#t) -- 19?? wrong
Run Code Online (Sandbox Code Playgroud)
如何转换为出现在数字中?
local t = {{2173,1},{2160,5}}
print(#t) -- 2 correct
Run Code Online (Sandbox Code Playgroud)