Escrever tabela em arquivo

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Escrever tabela em arquivo

Ulisses Piassa
Boa tarde galera, tudo blz?

Estou tentando persistir em um arquivo Lua uma tabela que vou tratar ao recebê-la de um servidor. No entanto o Lua retorna um erro dizendo:

bad argument #1 to 'write' (string expected, got table).

Existe alguma forma de escrever essa tabela no arquivo?

Eis os códigos que estou usando:

TABELA QUE SERÁ RECEBIDA:

return { lib ={"\x1E\x23\xFE\xFF\x00\x0A"}, index=1000}

FUNÇÃO DE CRIAÇÃO DO ARQUIVO (após carregá-lo em memória com loadfile e pcall):

persisteTabela = function(tabelaRecebida)
  
  local index = tabelaRecebida.index
  tabelaRecebida.index = nil

  local handlerTabela = io.open("01.lua", "w")
  io.output(handlerTabela)
  handlerTabela:write(tabelaRecebida)
  handlerTabela:close()
  
end

Alguém poderia me ajudar?

Obrigado pessoal!!

[]'s


Ulisses

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em http://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Escrever tabela em arquivo

Denis Dos Santos Silva

Esse processo de gravar uma tabela em um arquivo, "chama-se" de serialização, há vários meios de fazer isso.

o link abaixo tem vários scripts (bibliotecas) que fazem isso
http://lua-users.org/wiki/SaveTableToFile

um legal é o 'serpent'
http://notebook.kulchenko.com/programming/serpent-lua-serializer-pretty-printer



Em quinta-feira, 24 de setembro de 2015 17:58:23 UTC-3, Ulisses Piassa escreveu:
Boa tarde galera, tudo blz?

Estou tentando persistir em um arquivo Lua uma tabela que vou tratar ao recebê-la de um servidor. No entanto o Lua retorna um erro dizendo:

bad argument #1 to 'write' (string expected, got table).

Existe alguma forma de escrever essa tabela no arquivo?

Eis os códigos que estou usando:

TABELA QUE SERÁ RECEBIDA:

return { lib ={"\x1E\x23\xFE\xFF\x00\x0A"}, index=1000}

FUNÇÃO DE CRIAÇÃO DO ARQUIVO (após carregá-lo em memória com loadfile e pcall):

persisteTabela = function(tabelaRecebida)
  
  local index = tabelaRecebida.index
  tabelaRecebida.index = nil

  local handlerTabela = io.open("01.lua", "w")
  io.output(handlerTabela)
  handlerTabela:write(tabelaRecebida)
  handlerTabela:close()
  
end

Alguém poderia me ajudar?

Obrigado pessoal!!

[]'s


Ulisses

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em http://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Escrever tabela em arquivo

Ulisses Piassa
Denis, valeu, vou tentar usar alguma biblioteca dessas!

Obrigado mais uma vez!

[]'s

Ulisses

2015-09-24 18:56 GMT-03:00 Denis Dos Santos Silva <[hidden email]>:

Esse processo de gravar uma tabela em um arquivo, "chama-se" de serialização, há vários meios de fazer isso.

o link abaixo tem vários scripts (bibliotecas) que fazem isso

um legal é o 'serpent'



Em quinta-feira, 24 de setembro de 2015 17:58:23 UTC-3, Ulisses Piassa escreveu:
Boa tarde galera, tudo blz?

Estou tentando persistir em um arquivo Lua uma tabela que vou tratar ao recebê-la de um servidor. No entanto o Lua retorna um erro dizendo:

bad argument #1 to 'write' (string expected, got table).

Existe alguma forma de escrever essa tabela no arquivo?

Eis os códigos que estou usando:

TABELA QUE SERÁ RECEBIDA:

return { lib ={"\x1E\x23\xFE\xFF\x00\x0A"}, index=1000}

FUNÇÃO DE CRIAÇÃO DO ARQUIVO (após carregá-lo em memória com loadfile e pcall):

persisteTabela = function(tabelaRecebida)
  
  local index = tabelaRecebida.index
  tabelaRecebida.index = nil

  local handlerTabela = io.open("01.lua", "w")
  io.output(handlerTabela)
  handlerTabela:write(tabelaRecebida)
  handlerTabela:close()
  
end

Alguém poderia me ajudar?

Obrigado pessoal!!

[]'s


Ulisses

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em http://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em http://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.