我需要將表格轉換爲逗號分隔列表以便將其保存到文本文件。 Lua中有這樣的內置方法嗎?Lua - 將表格轉換成逗號分隔列表
7
A
回答
2
沒有內置函數,但在網上有例子。
0
有沒有內置的方式,但有一些相對簡單的選項,如果你想自己構建它。這裏有一些鏈接,可以幫助你找出你要如何把它一起:
http://www.lua.org/pil/12.1.html
http://lua-users.org/wiki/TableSerialization
0
沒有,沒有一個「內置」功能這一點。但是自己做並不難。我保留一個腳本,以遞歸方式將Lua表作爲Lua腳本直接寫入文件,然後可以像Lua腳本一樣加載和執行Lua腳本。
--This file exports a function, WriteTable, that writes a given table out to a given file handle.
local writeKey = {};
function writeKey.string(hFile, value, iRecursion)
WriteFormatted(hFile, "[\"%s\"]", value);
end
function writeKey.number(hFile, value, iRecursion)
WriteFormatted(hFile, "[%i]", value);
end
local writeValue = {};
function writeValue.string(hFile, value, iRecursion)
WriteFormatted(hFile, "[==[%s]==]", value);
end
function writeValue.number(hFile, value, iRecursion)
WriteFormatted(hFile, "%i", value);
end
function writeValue.boolean(hFile, value, iRecursion)
if(value) then hFile:write("true"); else hFile:write("false"); end;
end
function writeValue.table(hFile, value, iRecursion)
WriteTable(hFile, value, iRecursion)
end
local function WriteFormatted(hFile, strFormat, ...)
hFile:write(string.format(strFormat, ...));
end
local function WriteForm(hFile, strFormat, ...)
hFile:write(string.format(strFormat, ...));
end
local function WriteTabs(hFile, iRecursion)
for iCount = 1, iRecursion, 1 do
hFile:write("\t");
end
end
function WriteTable(hFile, outTable, iRecursion)
if(iRecursion == nil) then iRecursion = 1; end
hFile:write("{\n");
local bHasArray = false;
local arraySize = 0;
if(#outTable > 0) then bHasArray = true; arraySize = #outTable; end;
for key, value in pairs(outTable) do
if(writeKey[type(key)] == nil) then print("Malformed table key."); return; end
if(writeValue[type(value)] == nil) then
print(string.format("Bad value in table: key: '%s' value type '%s'.", key, type(value)));
return;
end
--If the key is not an array index, process it.
if((not bHasArray) or
(type(key) ~= "number") or
not((1 <= key) and (key <= arraySize))) then
WriteTabs(hFile, iRecursion);
writeKey[type(key)](hFile, key, iRecursion + 1);
hFile:write(" = ");
writeValue[type(value)](hFile, value, iRecursion + 1);
hFile:write(",\n");
end
end
if(bHasArray) then
for i, value in ipairs(outTable) do
WriteTabs(hFile, iRecursion);
writeValue[type(value)](hFile, value, iRecursion + 1);
hFile:write(",\n");
end
end
WriteTabs(hFile, iRecursion - 1);
hFile:write("}");
end
11
如果您的表是一個數組,你可以使用table.concat
打印的CSV:
t={10,20,30}
print(table.concat(t,","))
輸出10,20,30
。
相關問題
- 1. 轉換Teradata表列逗號分隔值
- 2. Bash - 轉換逗號分隔列表
- 3. 如何將列表<string>轉換爲逗號分隔列表中的逗號分隔列表
- 4. 將由空格分隔的整列列表轉換爲逗號整數列表?
- 5. 將IP列表(帶單引號)轉換爲逗號分隔
- 6. PHP MYSQL - 搜索逗號,逗號分隔列表分隔列表
- 7. Excel將列轉換爲逗號分隔
- 8. 將excel表單轉換成逗號分隔的文本文件
- 9. 使用linq轉換逗號分隔列表中的列表?
- 10. 轉換地址的列表,以逗號分隔列表
- 11. 將逗號分隔的字符串轉換爲變量列表?
- 12. Python將逗號分隔列表轉換爲熊貓數據框
- 13. 將逗號分隔的整數列表轉換爲數組
- 14. 將逗號分隔值轉換爲列表<Long>
- 15. 如何將NVARCHAR逗號分隔列表轉換爲INT?
- 16. 將列表轉換爲逗號分隔的MySQL插入語句
- 17. 如何將列表轉換爲以逗號分隔的C#?
- 18. 將逗號分隔的雙字符串轉換爲列表
- 19. 如何將逗號分隔列表轉換爲選擇框
- 20. 將逗號分隔的字符串轉換爲列表
- 21. 將逗號分隔列表轉換爲數組 - 爆炸vs preg_split
- 22. 使用Javascript將逗號分隔列表轉換爲JSON
- 23. 逗號分隔列表
- 24. 逗號分隔的列表
- 25. @synthesize逗號分隔列表
- 26. 使用linq將列表中的逗號分隔列表轉換爲列
- 27. 將表格列中的逗號分隔值分隔成使用mysql的行嗎?
- 28. 轉換列表爲雙引號逗號分隔字符串
- 29. 我如何轉換逗號分隔字符串轉換成列表<int>
- 30. 如何在逗號分隔列表中轉換列數據
這裏使用的下劃線是什麼?因爲pairs(table)返回一個key和value,所以_指示對象(tt)做 s = s ..「,」.. escapeCSV(p) end – clua7
你不關心鑰匙。 – Alan
請將答案本身的完整答案,而不是隻鏈接到外部資源。 –