Necesito convertir una tabla en una lista separada por comas con el fin de guardarlo en un archivo de texto separado. ¿Hay un método incorporado para hacer esto en Lua?Lua - convertir una tabla en una lista separada por comas
7
A
Respuesta
2
No hay una función incorporada, pero hay ejemplos en la web.
0
no hay una construida en el camino, pero hay una serie de opciones que están relativamente fácil si se quiere construir por sí mismo. Estos son algunos enlaces que pueden ayudar a determinar cómo desea poner juntos:
http://www.lua.org/pil/12.1.html
http://lua-users.org/wiki/TableSerialization
0
No, no es un "construido en" función para esto. Pero no es difícil hacerlo tú mismo. Mantengo un script para recursivamente escribir tablas Lua directamente a los archivos como scripts Lua, que luego se pueden cargar y ejecutar como scripts 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
Si la tabla es una matriz, se puede utilizar para imprimir table.concat
CSV:
t={10,20,30}
print(table.concat(t,","))
salidas 10,20,30
.
Cuestiones relacionadas
- 1. ¿Creando una lista separada por comas?
- 2. Imprime una lista separada por comas en T-SQL
- 3. ¿Cómo harías una cadena separada por comas de una lista?
- 4. Lista separada por comas en SQL
- 5. Convertir flotador para cadena separada por comas
- 6. ¿Cómo convierto una cadena separada por comas en una matriz?
- 7. número de adjunto a una lista separada por comas
- 8. Rieles: visualización @cars como una lista separada por comas
- 9. MySQL resultados como una lista separada por comas
- 10. Generar matriz desde una lista separada por comas - PHP
- 11. ¿Cómo imprimir una lista separada por comas con aldea?
- 12. ¿Cómo puedo convertir cadena separada por comas en una lista <int>
- 13. ¿Cómo dividir una cadena separada por comas?
- 14. Convierte una colección IList <int> en una lista separada por comas
- 15. ¿Cómo convertir una matriz de cadenas en una cadena separada por comas?
- 16. Búsqueda de MySQL valores en una cadena separada por comas
- 17. Convertir entrada separada por comas en las columnas
- 18. Cómo contar artículos en lista separada por comas de MySQL
- 19. Eliminar valores en una lista separada por comas de la base de datos
- 20. ¿Eliminar duplicados en una lista separada por comas con una expresión regular?
- 21. Conversión de una lista <int> en una cadena separada por comas
- 22. ¿Cómo crear una lista separada por comas de una matriz en PHP?
- 23. Convertir matriz de enteros a cadena separada por comas
- 24. DB2 salida separada por comas
- 25. cheque MySQL si los números están en una lista separada por comas
- 26. String array como una cadena separada por comas en XAML
- 27. Lista separada por comas de elementos de matriz
- 28. ¿Cómo convertir elementos en una matriz separada por comas en PHP?
- 29. Cómo crear una lista <T> a partir de una cadena separada por comas?
- 30. ¿Hay una expresión regular para una lista separada por comas de valores discretos?
¿cuál es el guión bajo usado aquí? No he visto esto antes: a _, p en pares (tt) hacen s = s .. "" .. escapeCSV (p) final – clua7
puesto pares (tabla) devuelve un valor de la clave y, al indica _ no te importa la llave. – Alan
Escriba la respuesta completa en la respuesta en sí misma en lugar de solo vincularla a un recurso externo. –