Tôi cần chuyển đổi bảng thành danh sách được phân tách bằng dấu phẩy để lưu nó vào tệp văn bản. Có một phương pháp được xây dựng trong để làm điều này trong Lua?Lua - chuyển đổi bảng thành danh sách được phân tách bằng dấu phẩy
7
A
Trả lời
2
Không có chức năng tích hợp sẵn, nhưng có các ví dụ trên web.
0
Không có cách nào được tích hợp sẵn, nhưng có một số tùy chọn tương đối dễ dàng nếu bạn muốn tự xây dựng. Dưới đây là một số liên kết có thể giúp bạn tìm ra cách bạn muốn đặt nó với nhau:
http://www.lua.org/pil/12.1.html
http://lua-users.org/wiki/TableSerialization
0
Không, đó không phải là "xây dựng trong" chức năng cho việc này. Nhưng nó không khó để làm điều đó cho mình. Tôi giữ một kịch bản xung quanh để đệ quy viết Lua bảng trực tiếp vào các tập tin như Lua script, mà sau đó có thể được nạp và thực hiện như Lua script.
--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
Nếu bảng của bạn là một mảng, bạn có thể sử dụng để in table.concat
CSV:
t={10,20,30}
print(table.concat(t,","))
đầu ra 10,20,30
.
Các vấn đề liên quan
- 1. Chuyển đổi 'Danh sách <string>' thành chuỗi được phân tách bằng dấu phẩy
- 2. Danh sách được phân tách bằng dấu phẩy trong SQL
- 3. Cách tốt nhất để chuyển đổi danh sách thành chuỗi được phân tách bằng dấu phẩy trong java
- 4. Danh sách phân cách bằng dấu phẩy được phân cách bằng dấu phẩy
- 5. Chuyển đổi giá trị được phân cách bằng dấu phẩy thành Danh sách <Long>
- 6. Giá trị được phân tách bằng dấu phẩy: từ chuỗi thành đối tượng đến danh sách
- 7. Tạo danh sách được phân cách bằng dấu phẩy?
- 8. Làm cách nào để in danh sách được phân tách bằng dấu phẩy bằng ấp?
- 9. Các cột chuyển đổi SQLite thành chuỗi phân tách bằng dấu phẩy
- 10. danh sách được phân tách bằng dấu phẩy với CSS — Tôi muốn có một Dấu phẩy Oxford!
- 11. Lặp lại được phân tách bằng dấu phẩy
- 12. Định dạng cấu trúc dữ liệu thành danh sách đối số được phân tách bằng dấu phẩy
- 13. Tạo danh sách tệp được phân tách bằng dấu phẩy với Ant
- 14. Số được phân tách bằng dấu phẩy Regex
- 15. Danh sách các bộ chọn được phân tách bằng dấu phẩy?
- 16. Làm cách nào để chuyển danh sách được phân tách bằng dấu phẩy sang một thủ tục được lưu trữ?
- 17. Chuỗi được phân tách bằng dấu phẩy thành NSArray trong Mục tiêu-C
- 18. Chuyển đổi Danh sách <int> thành chuỗi các giá trị được phân cách bằng dấu phẩy
- 19. tách giá trị được phân cách bằng dấu phẩy
- 20. Làm cách nào để chuyển đổi một số thành chuỗi được định dạng bằng dấu phẩy, được phân tách bằng dấu phẩy?
- 21. mysql chọn các hàng riêng biệt thành một cột danh sách được phân tách bằng dấu phẩy
- 22. Truy vấn này làm gì để tạo danh sách phân tách bằng dấu phẩy SQL Server?
- 23. MySQL: Tách dấu phẩy tách ra danh sách thành nhiều hàng
- 24. Làm thế nào để chuyển đổi mảng thành chuỗi từ được tách biệt bằng dấu phẩy?
- 25. Tham gia tập hợp các đối tượng thành chuỗi được phân tách bằng dấu phẩy
- 26. Chuyển đổi mục nhập được phân cách bằng dấu phẩy thành các cột
- 27. Chuyển đổi dấu phẩy thành dấu phân cách
- 28. Regex cho số được phân tách bằng dấu phẩy
- 29. Chuyển đổi IQueryable <object> kết quả thành chuỗi phân cách bằng dấu phẩy
- 30. Mẫu regex chấp nhận giá trị được phân tách bằng dấu phẩy hoặc dấu chấm phẩy
dấu gạch dưới được sử dụng cho đây là gì? Đã không nhìn thấy điều này trước đây: cho _, p theo cặp (tt) làm s = s .. "," .. escapeCSV (p) kết thúc – clua7
vì cặp (bảng) trả về một khóa và giá trị, dấu _ bạn không quan tâm đến chìa khóa. – Alan
Vui lòng đặt câu trả lời đầy đủ trong câu trả lời thay vì chỉ liên kết với tài nguyên bên ngoài. –