Arquivo Lua Gravar/Ler/Atualizar/Excluir

Neste artigo, exploraremos os recursos de gravação e leitura de arquivos Lua  , incluindo abertura e fechamento de arquivos, leitura e gravação de dados e navegação nas posições dos arquivos.

Lua File Write ou I/O é um aspecto essencial da programação. Lua fornece um conjunto de funções que permitem ler e gravar em arquivos.



Abra um arquivo

Para abrir um arquivo para leitura ou gravação, você pode usar a função io.open .

Esta função recebe dois argumentos: o nome do arquivo e o modo.

O modo especifica se o arquivo deve ser aberto para leitura ou gravação.

Aqui está um exemplo de abertura de um arquivo em Lua:

file = io.open (filename [, mode])

Aqui estão os vários modos de arquivo em Lua:

“a+”Abre ou cria um arquivo no modo de anexação com o modo de leitura habilitado.

Modos abertos Visão geral
"r" Isso abre arquivos no modo somente leitura por padrão e os exibe no modo somente leitura.
"c" Substitui arquivos existentes ou cria novos.
"a" Abra um arquivo existente ou crie um novo para anexar.
“r+” Modo de leitura e gravação de arquivos existentes.
“w+” Os dados existentes são removidos ou novos dados são criados com permissões de leitura/gravação.

Leitura do Arquivo Lua

Depois de abrir o arquivo, podemos ler todo o conteúdo do arquivo usando file:read (“ *all “), que lê o arquivo inteiro como uma única string.

Aqui está a sintaxe básica para ler um arquivo:

-- Read the entire contents of the file
local contents = file:read("*all")

onde arquivo é a variável na qual o arquivo foi aberto.

Aqui estão os diferentes argumentos que podem ser usados ​​com a função file:read() em Lua:

Modos de leitura Visão geral
• "*todos" lê o arquivo inteiro
• "*linha" lê a próxima linha (padrão)
• "*número" lê um número
• “n” lê n bytes
• "eu" lê uma linha (com nova linha), excluindo o caractere de nova linha
• "EU" lê uma linha (com nova linha), incluindo o caractere de nova linha

Gravação de Arquivo Lua

Em Lua, escrever em um arquivo pode ser feito usando a função file:write() . Esta função escreve uma determinada string em um arquivo.

Este exemplo demonstra como escrever uma string em um arquivo:

-- Write a string to the file
file:write("Hello, World!")

onde arquivo é a variável na qual o arquivo foi aberto.

Aqui estão os diferentes argumentos que podem ser usados ​​com a função file:write() em Lua:

tipos Visão geral Exemplos
corda grava a string no arquivo. arquivo.write('Olá Mundo')
número grava o número no arquivo. arquivo.escrever(20)
mesa grava o conteúdo da tabela no arquivo. arquivo.write({1,2,3})
grava vários argumentos no arquivo. file.write('Olá','Mundo')

Aqui está um exemplo de como escrever e ler um arquivo .txt em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
local file = io.open("output.txt", "w")
-- write some text to the file
file:write("This is the first line of the file.\n")
file:write("This is the second line of the file.")
-- close the file
file:close()
local file2 = io.open("output.txt", "r")
local data = file2:read("*all")
print(data)
-- close the file
file2:close()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Para ler e gravar um arquivo CSV (Valores separados por vírgula) em Lua, você pode usar a biblioteca io e suas funções de leitura e gravação junto com funções de string para analisar e manipular os dados CSV.

Aqui está um exemplo de como ler um arquivo CSV em Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-- Open the output file in write mode
local file = io.open("output.csv", "w")
-- Write the header line to the file
file:write("Name,Age,Gender\n")
-- Write some data to the file
file:write("Alice,25,Female\n")
file:write("Bob,32,Male\n")
file:write("Charlie,19,Male\n")
-- Close the file
file:close()
-- Open the CSV file
local file2 = io.open("output.csv", "r")
-- Read the file line by line
for line in file2:lines() do
-- Split the line into fields using a comma as the delimiter
local fields = {}
for field in string.gmatch(line, "[^,]+") do
table.insert(fields, field)
end
-- Do something with the fields
print(fields[1], fields[2], fields[3])
end
-- Close the file
file2:close()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Em Lua, um arquivo é simplesmente uma sequência de bytes. No entanto, a extensão do arquivo pode ser usada para indicar o tipo de dados armazenados no arquivo. Por exemplo, um arquivo de script Lua tem a extensão .lua, um arquivo CSV tem a extensão .csv e assim por diante.

O exemplo abaixo demonstrará como criar um arquivo de script Lua:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
-- Open the output file in write mode
local file = io.open("example.lua", "w")
-- Write some Lua code to the file
file:write("– This is a Lua file\n")
file:write("function add(a, b)\n")
file:write(" return a + b\n")
file:write("end\n")
file:write("print(add(6,7))")
-- Close the file
file:close()
-- Open the file in read mode
local file2 = io.open("example.lua", "r")
-- Read the contents of the file into a string
local contents = file2:read("*all")
-- Close the file
file2:close()
-- Print the contents of the file
print(contents)
print("--------------")
dofile("example.lua")
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

PDF (Portable Document Format) é um formato de arquivo usado para documentos que devem ser compartilhados e visualizados em diferentes plataformas e dispositivos. Em Lua, você pode gerar arquivos PDF programaticamente usando bibliotecas de terceiros como LuaTeX, LuaLaTeX ou pdfgen.

Aqui está um exemplo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- open the output PDF file in binary mode
local file = io.open("output.pdf", "wb")
-- write the modified data to the output file
file:write('I am reading a PDF file using Lua')
-- close the output file
file:close()
-- open the input PDF file in binary mode
local file2 = io.open("output.pdf", "rb")
-- read the contents of the input file into a string variable
local data = file2:read("*all")
print(data)
-- close the input file
file2:close()
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Fechar um arquivo

Em Lua , é importante fechar um arquivo quando ele não for mais necessário. Isso é feito usando o método file:close() .

O trecho de código a seguir ilustra como fechar um arquivo:

file:close()

onde arquivo é a variável usada para abrir o arquivo.

Se um arquivo não for fechado corretamente, pode resultar em vazamentos de memória e outros problemas. Também é possível que outros programas ou processos não consigam acessar o arquivo até que ele seja fechado.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone