
untpc
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
untpc deu reputação a Ryzor em Manipulando arquivos através de LUAManipulando arquivos através de LUA
Abrindo um arquivo
Para começar, você terá que abrir o arquivo.Para isso, usamos a função io.open(arquivo[modo]), que também pode cria-lo caso não exista.Arquivo será o seu diretório,que caso não exista retornará nil, e modo são os seguintes:
"r" - Modo de leitura.
"rb" - Leitura em modo binário.
"w" - Modo de escrita.
"wb" - Escrita em modo binário.
"a" - Adicionar ao arquivo.
"r+" - Modo de atualização preservando os dados anteriores.
"w+" - Modo de atualização apagando os dados anteriores.
"a+" - Modo de adição e atualização, preservando os dados anteriores e adicionando ao final do arquivo.
Por exemplo, quero abrir um arquivo que se chama Iuri.lua e está no disco rígido C:, uso:
io.open("C://Iuri.lua") Caso o arquivo não exista, irá retornar nil. Escrevendo em arquivos Para fazer a escrita em um arquivo é muito simples, basta usar file:write(...), onde file é o arquivo que abrimos anteriormente.Em ... será colocada uma string que irá ser escrita conforme o modo de abertura do arquivo definido anteriormente. Ex.: local file = io.open("C://Iuri.lua") file:write('Este é um tutorial') file:close() Lendo arquivos Para fazermos a leitura do arquivo, usamos file:read(...).Se nenhum formato for especificado, ele usará o formato padrão("*l").Os outros formatos são: "*n" - Lê um número, este é o único formato que retorna um número ao invés de uma cadeia. "*a" - Irá ler o arquivo inteiro, iniciando da posição atual. number - Irá ler o arquivo até o número de caracteres definido. Ex.: local file = io.open("C://Iuri.lua") print(file:read()) file:close() Isso irá printar 'Este é um tutorial' no console , o que foi escrito anteriormente. file:lines() file:lines(), é usado em um laço for e sua sintaxe é a seguinte: for linha in file:lines do corpo end Isso criará uma repetição sobre todas as linhas do arquivo com linha retornando os caracteres da linha em questão. Ex.: local file = io.open("C://Iuri.lua") for linha in file:lines do print(linha) end file:close() Como só foi escrito uma linha no arquivo irá printar 'Este é um tutorial', se embaixo disso escrevessemos 'Teste' o for se repetiria 2 vezes e iria printar: 'Este é um tutorial' 'Teste' Finalizando o arquivo Por último, iremos finalizar o arquivo, usando o file:close(), que já foi mostrado nos exemplos anteriores. Deletando arquivos ou diretórios Para deletar arquivos e diretórios, usamos a função os.remove(file or directory), lembrando que o arquivo não pode estar em uso e o diretório vazio. Ex.: os.remove("C://Iuri.lua")
Creditos
Dean