Postado Novembro 21, 2012 12 anos Manipulando 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
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.