En aquest tema, aprendrem com gestionar fitxers en Lua. La manipulació de fitxers és una habilitat essencial per a moltes aplicacions, ja que permet llegir dades d'arxius externs i escriure resultats en fitxers. Lua proporciona una API senzilla però potent per treballar amb fitxers.
Continguts
Obrir i Tancar Fitxers
Obrir Fitxers
Per obrir un fitxer en Lua, utilitzem la funció io.open. Aquesta funció requereix dos arguments: el nom del fitxer i el mode d'obertura.
Modes d'obertura comuns:
"r": Llegeix (read). Obre el fitxer per a lectura."w": Escriu (write). Crea un fitxer nou o sobreescriu un fitxer existent."a": Afegeix (append). Obre el fitxer per afegir dades al final.
local file = io.open("example.txt", "r")
if file then
print("Fitxer obert correctament")
else
print("No s'ha pogut obrir el fitxer")
endTancar Fitxers
És important tancar els fitxers després d'haver acabat de treballar amb ells per alliberar recursos. Utilitzem la funció file:close() per fer-ho.
Llegir Fitxers
Llegir Tot el Contingut
Per llegir tot el contingut d'un fitxer, podem utilitzar la funció file:read("*all").
local file = io.open("example.txt", "r")
if file then
local content = file:read("*all")
print(content)
file:close()
endLlegir per Línies
Per llegir un fitxer línia per línia, utilitzem file:read("*line").
local file = io.open("example.txt", "r")
if file then
for line in file:lines() do
print(line)
end
file:close()
endEscriure Fitxers
Escriure Text
Per escriure text en un fitxer, utilitzem la funció file:write.
local file = io.open("example.txt", "w")
if file then
file:write("Hola, món!\n")
file:write("Aquesta és una altra línia.\n")
file:close()
endAfegir Text
Per afegir text al final d'un fitxer existent, obrim el fitxer en mode "a".
local file = io.open("example.txt", "a")
if file then
file:write("Aquesta línia s'afegeix al final.\n")
file:close()
endManipulació de Fitxers
Comprovar l'Existència d'un Fitxer
Podem comprovar si un fitxer existeix intentant obrir-lo en mode lectura.
local function file_exists(name)
local f = io.open(name, "r")
if f then
f:close()
return true
else
return false
end
end
print(file_exists("example.txt")) -- Retorna true si el fitxer existeix, false en cas contrariEliminar un Fitxer
Per eliminar un fitxer, utilitzem la funció os.remove.
Exercicis Pràctics
Exercici 1: Llegir i Comptar Línies
Escriu un script que llegeixi un fitxer i compti el nombre de línies que conté.
local file = io.open("example.txt", "r")
if file then
local count = 0
for line in file:lines() do
count = count + 1
end
file:close()
print("Nombre de línies:", count)
else
print("No s'ha pogut obrir el fitxer")
endExercici 2: Escriure un Fitxer de Registre
Escriu un script que afegeixi missatges de registre a un fitxer log.txt.
local function log_message(message)
local file = io.open("log.txt", "a")
if file then
file:write(message .. "\n")
file:close()
else
print("No s'ha pogut obrir el fitxer de registre")
end
end
log_message("Aquest és un missatge de registre.")
log_message("Un altre missatge de registre.")Conclusió
En aquesta secció, hem après com obrir, llegir, escriure i manipular fitxers en Lua. La gestió de fitxers és una habilitat fonamental que ens permet interactuar amb dades externes i emmagatzemar resultats de manera persistent. Amb aquests coneixements, estàs preparat per abordar tasques més complexes que impliquin la manipulació de fitxers en els teus projectes Lua.
Curs de Programació en Lua
Mòdul 1: Introducció a Lua
Mòdul 2: Conceptes Bàsics
Mòdul 3: Conceptes Intermedis
Mòdul 4: Conceptes Avançats
- Coroutines
- Programació Orientada a Objectes en Lua
- Tècniques de Depuració
- Optimització del Rendiment
- Ús de l'API C de Lua
Mòdul 5: Aplicacions Pràctiques
- Construcció d'un Joc Simple
- Scripting en Motors de Joc
- Automatització de Tasques amb Lua
- Integració de Lua amb Altres Llenguatges
