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") end
Tancar 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() end
Llegir 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() end
Escriure 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() end
Afegir 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() end
Manipulació 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 contrari
Eliminar 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") end
Exercici 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