SK

[Lua] Escrevendo Em Um Arquivo [Básico]

Por SkyDangerous, 11 de out. de 2012 em Tutoriais de Scripting

otserv
tibia
11
4.5k
SkyDangerousS
11 de outubro de 2012 às 02:12

Escrevendo em um Arquivo.



Básico

  • Escrevendo um arquivo em lua é muito baba, muito simples começamos com:
    local file = io.open("exemplo.txt", "w")
    


  • Caso queira que o arquivo não necessariamente esteja no mesmo lugar, utilize:
    local file = io.open(getDataDir().."/logs/bans/ban.txt/", "w")
    


     
    O código a cima será responsável pela localização do arquivo.
    Podemos notar dois parâmetros dentro do parênteses, vejamos:

  • "exemplo.txt"
    Aqui será o nome do arquivo que ele irá escrever, você pode por qualquer formato (.txt,.xml,.lua)
  • "w"
    Aqui será o modo que ele ira abrir o arquivo, o w significa write ou seja ele irá escrever, vale lembrar que exitem vários outros métodos.
  • Nota: Para abrir o arquivo é necessário que eles estejam no mesmo local de trabalho.
  • Ok, agora vamos escrever algo no arquivo, para isso utilizamos:
    file:write (" XTIBIA ")
    


     
    O código a cima escreverá o que está entre os parênteses, que no caso seja XTIBIA

  • Estamos indo bem, agora precisamos encerrar, para isso vamos utilizar:
    file:close()
    


     
    O código a cima vai sinalizar que está encerrado a escrita do arquivo.
     
    Código Inteiro:

    local file = io.open("exemplo.txt", "w")
    file:write("XTIBIA")
    file:close()
    


     
    outros métodos:

    "r" -- modo de leitura
    "w" -- modo de escrita
    "a" -- modo de adição
    "r+" -- modo de atualização, preservando dados anteriores
    "w+" -- modo de atualização, apagando todos dados anteriores
    "a+" -- modo de atualização, preserva dados anteriores, novos dados apenas no fim do arquivo
    


Editado Outubro 15 por SkyDangerous

caoticC
12 de outubro de 2012 às 09:16

Pode ser até útil

Mais existe outros métodos devia ter mais informações.

Como acessar ele em outros diretórios e como utilizar os dados em funções mais esta bom.

 

Tutorial Aprovado

Tópico Movido

OneshotO
12 de outubro de 2012 às 09:38

Não necessariamente o arquivo deve estar no mesmo local de trabalho.

 

local file = io.open(getDataDir().."/logs/bans/ban.txt/", "w")

 

Os modos de leitura do arquivo são estes

 

"r" -- modo de leitura
"w" -- modo de escrita
"a" -- modo de adição
"r+" -- modo de atualização, preservando dados anteriores
"w+" -- modo de atualização, apagando todos dados anteriores
"a+" -- modo de atualização, preserva dados anteriores, novos dados apenas no fim do arquivo

 

Vale lembrar também que quando você usa io.open direcionando para um arquivo que não existe, a função cria o arquivo.

Editado Outubro 12 por Oneshot

15 de outubro de 2012 às 00:33

Acho que vale a pena adicionar o que o Oneshot complementou no seu tutorial, pois está bem fraco.

 

Lembrando que o getDataDir não é uma função de lua pura.

SkyDangerousS
15 de outubro de 2012 às 07:52

Irei adicionar.

obrigado

2 meses depois...
jackson9292J
20 de dezembro de 2012 às 13:28

E como se faz para ler o arquivo escrito?

DinoAdminD
20 de dezembro de 2012 às 13:32

E como se faz para ler o arquivo escrito?

 

Sei que voce é um novo Usuario mais reviver topicos Mortos a mais de 30 dias é contra as regras

Leia as Regras!.

Reportado!

Yan OliveiraY
20 de dezembro de 2012 às 13:35

E como se faz para ler o arquivo escrito?

 

Como o úsuario acima disse, é contra as regras reviver topico morto, se tem duvida no topico, mande PM para o autor do tópico. Espero que seja seu primeiro e ultimo aviso.

1 mês depois...
dalvorsnD
28 de janeiro de 2013 às 10:13

Não necessariamente o arquivo deve estar no mesmo local de trabalho.

 

local file = io.open(getDataDir().."/logs/bans/ban.txt/", "w")

 

Os modos de leitura do arquivo são estes

 

"r" -- modo de leitura
"w" -- modo de escrita
"a" -- modo de adição
"r+" -- modo de atualização, preservando dados anteriores
"w+" -- modo de atualização, apagando todos dados anteriores
"a+" -- modo de atualização, preserva dados anteriores, novos dados apenas no fim do arquivo

 

Vale lembrar também que quando você usa io.open direcionando para um arquivo que não existe, a função cria o arquivo.

Só cria se estiver em algum modo de escrita ou atualização(w, w+, w+b, a, a+, a+b), em modos de leitura apenas(r. r+, r+b) ele vai retornar nil e não vai criar nenhum arquivo.

OneshotO
28 de janeiro de 2013 às 10:45

Não necessariamente o arquivo deve estar no mesmo local de trabalho.

 

local file = io.open(getDataDir().."/logs/bans/ban.txt/", "w")

 

Os modos de leitura do arquivo são estes

 

"r" -- modo de leitura
"w" -- modo de escrita
"a" -- modo de adição
"r+" -- modo de atualização, preservando dados anteriores
"w+" -- modo de atualização, apagando todos dados anteriores
"a+" -- modo de atualização, preserva dados anteriores, novos dados apenas no fim do arquivo

 

Vale lembrar também que quando você usa io.open direcionando para um arquivo que não existe, a função cria o arquivo.

Só cria se estiver em algum modo de escrita ou atualização(w, w+, w+b, a, a+, a+b), em modos de leitura apenas(r. r+, r+b) ele vai retornar nil e não vai criar nenhum arquivo.

 

Legal, cara. Você reviveu um tópico de 3 meses atrás apenas para me corrigir hue. Realmente não sabia dessa, mas acho que faz bastante sentido mesmo.

 

Abraços.

Editado Janeiro 28 por Oneshot

SlicerS
29 de janeiro de 2013 às 11:14

kk tava com esse ms problema ontem, de criar os arquivos quando n tem..

tive q usar..

io.type(io.open(path))

;x