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.

file:close()

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.

os.remove("example.txt")

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.

© Copyright 2024. Tots els drets reservats