如何在Lua的n * 6表中放入一些数据?

时间:2014-08-13 02:36:59

标签: lua lua-table

我想将数据存储到n * 6表中,表格就像

Test1  Test2  Test3  Test4  Test5  Test6
1      abc    sss    efg    1000   ijk
2      cde    yyy    ghi    2000   klm
...
...       and so on
...

我先声明了表格

local myTable = {"Test1", "Test2", "Test3", "Test4", "Test5", "Test6"}
那么我应该如何制作n * 6表来存储我的常规格式数据呢?

任何信息都将受到赞赏!!

3 个答案:

答案 0 :(得分:2)

您可以拥有一个嵌套表:

local myTable = {
    {"Test1", "Test2", "Test3", "Test4", "Test5", "Test6"},
    {1, "abc", "sss", "efg", 1000, "ijk"},
    {2, "cde", "yyy", "ghi", 2000, "klm"},
    -- and so on
}

答案 1 :(得分:2)

这是一个如何从字符串中提取数据并存储到表中的示例代码:

local str = 'Test1  Test2  Test3  Test4  Test5  Test6'
local myTable = {}
for s in str:gmatch("%S+") do
    myTable[#myTable + 1] = s
end

你的问题有点复杂,因为它是一个二维数组,但总的想法是类似的,我会把它留给你。提示:使用循环获取每一行,使用另一个循环从每行中提取数据。

答案 2 :(得分:1)

这是另一种选择,第一列成为一组连续的正整数键:

local myTable = {
    {Test2="abc", Test3="sss", Test4="efg", Test5=1000, Test6="ijk"},
    {Test2="cde", Test3="yyy", Test4="ghi", Test5=2000, Test6="klm"},
    -- and so on
}

这可能取决于您希望如何访问数据。有了这样的表,你可以去:

-- assumes that all rows are kept together (i.e., myTable is a "Lua sequence")
for i = 1, #myTable do 
print(
    myTable[i].Test2,
    myTable[i].Test3,
    myTable[i].Test4,
    myTable[i].Test5,
    myTable[i].Test6)
end