Rbx.Lua - 为什么我不能将.txt文件存储为表格?

时间:2015-03-15 19:57:56

标签: variables lua lua-table httpservice roblox

我有一个基于python的网络服务器在我的覆盆子pi上运行,网络刮擦了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"))

我需要将robux和票价存储在表格中。转到其中一个带有费率数据的网址,您会看到它已经格式化为Rbx.Lua表,它只需要花括号。如何将数据转换为表格?

1 个答案:

答案 0 :(得分:4)

您不能只是将字符串转换为这样的表,您需要通过沿分隔符(逗号)拆分组件将其拆分为表。 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)