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

Posted

技术标签:

【中文标题】Rbx.Lua - 为啥我不能将 .txt 文件存储为表格?【英文标题】:Rbx.Lua - Why can't I store a .txt file as a table?Rbx.Lua - 为什么我不能将 .txt 文件存储为表格? 【发布时间】:2015-05-17 21:33:32 【问题描述】:

我有一个基于 python 的网络服务器在我的树莓派上运行,它可以在 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 和票价存储在表格中。转到具有速率数据的 URL 之一,您会看到它已经为 Rbx.Lua 表格式化,它只需要花括号。如何将我的数据转换为表格?

【问题讨论】:

【参考方案1】:

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

【讨论】:

感谢您的回复。提供的脚本有效并且拆分字符串页面有所帮助。不过我不需要删除空格。

以上是关于Rbx.Lua - 为啥我不能将 .txt 文件存储为表格?的主要内容,如果未能解决你的问题,请参考以下文章

使用 rbx.lua,如何编辑 GUI 属性?

如何在 Lua 中将图像转换为 JSON?

html js将获取的信息存为指定的txt文件

java 将编码格式为utf-8的文件内容以 GBK编码存到txt文档

为啥 malloc 不能在 FreeBSD-x64 内核空间分配大内存?

matlab读取txt文件中的数据存为矩阵