我在树莓派上运行了一个基于python的Web服务器,该Web服务器在Roblox上抓取交易货币汇率。如果您不知道我刚才所说的话,那么您只需要知道我正在收集某个网页上发生变化的数字。我想将此收集的信息导入到我的Roblox游戏中,以便可以对其进行绘图(我已经制作了绘图仪)。

这是我导入它的工作:

bux = game.HttpService:GetAsync("http://tcserver.raspctl.com:5000/AvailableRobux.txt")
bux = {bux}
tix = game.HttpService:GetAsync("http://tcserver.raspctl.com:5000/AvailableTickets.txt")
tix = {tix}

这给了我404响应。如果我从计算机(在同一网络上)访问Web服务器,它还会给我404响应。我知道我正在正确进行端口转发,因为lua的以下行确实起作用。
print(game.HttpService:GetAsync("http://tcserver.raspctl.com:5000/AvailableRobux.txt"))

我需要将机器人和机票价格存储在一个表中。转到包含费率数据的URL之一,您将看到它已经为Rbx.Lua表设置了格式,只需要花括号。如何将数据转换为表格?

最佳答案

您不仅可以将字符串转换为这样的表,还需要通过沿定界符(逗号)将其拆分为表格来将组件拆分为表格。 See this page about splitting strings in Lua。我建议删除空格,并在数据条目之间仅使用逗号。

这是您需要的示例。爆炸功能来自我发布的链接。我还没有测试。

function explode(d,p)
  local t, ll
  t={}
  ll=0
  if(#p == 1) then return {p} end
    while true do
      l=string.find(p,d,ll,true) -- find the next d in the string
      if l~=nil then -- if "not not" found then..
        table.insert(t, string.sub(p,ll,l-1)) -- Save it in our array.
        ll=l+1 -- save just after where we found it for searching next time.
      else
        table.insert(t, string.sub(p,ll)) -- Save what's left in our array.
        break -- Break at end, as it should be, according to the lua manual.
      end
    end
  return t
end

bux = game.HttpService:GetAsync("http://tcserver.raspctl.com:5000/AvailableRobux.txt")
bux = explode(",",bux)
tix = game.HttpService:GetAsync("http://tcserver.raspctl.com:5000/AvailableTickets.txt")
tix = explode(",",tix)

关于variables - Rbx.Lua-为什么我不能将.txt文件存储为表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29065491/

10-10 16:51