我有一个包含表格的字符串,我如何将其转换为表格?

我需要把它变成如下的表格:

{
 {
  { X = -1, Y = -1 , Z = 1  }
  { X = 0, Y = -1 , Z = 1  }
  { X = 1, Y = -1 , Z = 1  }
 }
 {
  { X = -1, Y = 0 , Z = 1  }
  { X = 0, Y = 0 , Z = 1  }
  { X = 1, Y = 0 , Z = 1  }
 }
 {
  { X = -1, Y = 1 , Z = 1  }
  { X = 0, Y = 1 , Z = 1  }
  { X = 1, Y = 1 , Z = 1  }
 }
 {
  { X = -1, Y = 2 , Z = 1  }
  { X = 0, Y = 2 , Z = 1  }
  { X = 1, Y = 2 , Z = 1  }
 }
}
{
 {
  { X = 1, Y = -1 , Z = -1  }
  { X = 1, Y = -1 , Z = 0  }
  { X = 1, Y = -1 , Z = 1  }
 }
 {
  { X = 1, Y = 0 , Z = -1  }
  { X = 1, Y = 0 , Z = 0  }
  { X = 1, Y = 0 , Z = 1  }
 }
 {
  { X = 1, Y = 1 , Z = -1  }
  { X = 1, Y = 1 , Z = 0  }
  { X = 1, Y = 1 , Z = 1  }
 }
 {
  { X = 1, Y = 2 , Z = -1  }
  { X = 1, Y = 2 , Z = 0  }
  { X = 1, Y = 2 , Z = 1  }
 }
}
{
 {
  { X = -1, Y = -1 , Z = -1}
  { X = 0, Y = -1 , Z = -1}
  { X = 1, Y = -1 , Z = -1}
 }
 {
  { X = -1, Y = 0 , Z = -1}
  { X = 0, Y = 0 , Z = -1}
  { X = 1, Y = 0 , Z = -1}
 }
 {
  { X = -1, Y = 1 , Z = -1}
  { X = 0, Y = 1 , Z = -1}
  { X = 1, Y = 1 , Z = -1}
 }
 {
  { X = -1, Y = 2 , Z = -1}
  { X = 0, Y = 2 , Z = -1}
  { X = 1, Y = 2 , Z = -1}
 }
}
{
 {
  { X = -1, Y = -1 , Z = -1  }
  { X = -1, Y = -1 , Z = 0  }
  { X = -1, Y = -1 , Z = 1  }
 }
 {
  { X = -1, Y = 0 , Z = -1  }
  { X = -1, Y = 0 , Z = 0  }
  { X = -1, Y = 0 , Z = 1  }
 }
 {
  { X = -1, Y = 1 , Z = -1  }
  { X = -1, Y = 1 , Z = 0  }
  { X = -1, Y = 1 , Z = 1  }
 }
 {
  { X = -1, Y = 2 , Z = -1  }
  { X = -1, Y = 2 , Z = 0  }
  { X = -1, Y = 2 , Z = 1  }
 }
}

我该如何操作?我会在表格生成时进行操作(将表格添加到表格中),但是我写的代码似乎把它放到表格中的错误位置。因此,该代码会生成一个包含正确表格的字符串,我需要知道如何将该字符串中的表格放入表格中...

点赞
用户3979429
用户3979429

好吧,你可以手动分析它。但是我不会为你编写它。

但是,我会给你一个临时解决方案。(很差的一个,但在你做一个解析器之前它足够了)

local tab = load("return "..you_table_string)()

: 在 Lua 5.1 及其以下版本中,它是 loadstring

它将代码从字符串编译成函数,然而这通常不被看好。

2015-11-29 00:09:13
用户5614429
用户5614429
local Xmin = -1
local Xmax = 1
local Ymin = -1
local Ymax = 2
local Zmin = 1
local Zmax = 1
local BoxControl = 3
tbmroad.offsets = {}
local a = 0
local b = 0
local c = 0
local d = 0
local e = {}
local f = {}
local g = {}
local h = {}
local i = {}
local j = {}
local k = {}
local offsets = {}

local index = 0

-- 循环计算出所有偏移量的值
for a = 0, BoxControl do
   for b = Zmin, Zmax do
      for c = Ymin, Ymax do
         for d = Xmin, Xmax do
            if a == 0 then
               e[d+1] = {X = d, Y = c , Z = b}
            elseif a == 1 then
               e[d+1] = { X = b, Y = c , Z = d  }
            elseif a == 2 then
               b1= b * -1
               e[d+1] = { X = d, Y = c , Z = b1}
            elseif a == 3 then
               b1 = b * -1
               e[d+1] = { X = b1, Y = c , Z = d}
            end
         end
         f[c+1] = e
      end
      offsets[#offsets+1] = f
   end
end
2015-11-29 07:58:39