Lua:
Rédiger un fichier texte

Comment faire :

Travailler avec des fichiers pour l’écriture est simple en Lua. Vous utiliserez typiquement la fonction io.open() pour ouvrir (ou créer) un fichier, en spécifiant le mode d’opération – dans ce cas, "w" pour l’écriture. Si le fichier n’existe pas, il est créé ; s’il existe déjà, son contenu est écrasé. Il est crucial de fermer le fichier après l’écriture pour s’assurer que les données sont correctement sauvegardées et que les ressources sont libérées.

Voici un exemple simple qui écrit une chaîne de caractères dans un fichier nommé “example.txt” :

-- Ouverture du fichier en mode écriture
local file, err = io.open("example.txt", "w")

-- Vérification des erreurs lors de l'ouverture du fichier
if not file then
    print("Impossible d'ouvrir le fichier : ", err)
    return
end

-- Le texte à écrire dans le fichier
local text = "Bonjour, Lua !"

-- Écriture du texte dans le fichier
file:write(text)

-- Fermeture du fichier
file:close()

print("Fichier écrit avec succès.")

Sortie de l’exemple :

Fichier écrit avec succès.

Écrire plusieurs lignes :

Pour écrire plusieurs lignes, vous pouvez utiliser \n pour les nouvelles lignes dans votre chaîne de caractères, ou appeler file:write plusieurs fois.

local lines = {
    "Première ligne.",
    "Deuxième ligne.",
    "Troisième ligne."
}

local file = assert(io.open("multiple_lines.txt", "w"))

for _, line in ipairs(lines) do
    file:write(line, "\n")
end

file:close()

print("Plusieurs lignes écrites avec succès.")

Sortie de l’exemple :

Plusieurs lignes écrites avec succès.

Utilisation de bibliothèques tierces :

Bien que la bibliothèque standard de Lua soit tout à fait capable, pour des opérations sur les fichiers plus complexes, vous pourriez envisager l’utilisation d’une bibliothèque tierce comme Penlight. Penlight améliore les opérations standard sur les fichiers de Lua et offre des moyens plus simples de travailler avec les fichiers et les répertoires.

Après avoir installé Penlight, vous pouvez écrire dans un fichier ainsi :

local pl = require "pl"
local path = require "pl.path"
local file = require "pl.file"

-- Le texte à écrire
local text = "Bonjour, Penlight !"

-- Utilisation de Penlight pour écrire dans un fichier
local result, err = file.write("hello_penlight.txt", text)

if not result then
    print("Erreur lors de l'écriture du fichier : ", err)
else
    print("Fichier écrit avec succès avec Penlight.")
end

Sortie de l’exemple :

Fichier écrit avec succès avec Penlight.