LoriotPro Extended Edition Programmation en language LUA

Table des matières

HelpLUA

Fonction sur les Entrées Sorties (Manipulation des fichiers)

Introduction

La bibliothèque de fonction d’entrée/sortie (input/output ) propose deux styles différents pour la manipulation de fichiers.

Le premier utilise les descripteurs de fichiers implicite, c'est-à-dire qu’il faut définir un fichier d'entrée par défaut et un fichier de sortie par défaut, et toutes les entrées / sorties sont sur ce fichier par défaut.

Le second style utilise des descripteurs de fichier explicite.

Lorsque vous utilisez les descripteurs de fichiers implicite, toutes les opérations sont fournies par la table io.
Lorsque vous utilisez les descripteurs de fichier explicite, l’opération  io.open retourne un descripteur de fichier, puis toutes les opérations sont fournis en tant que méthodes de ce descripteur de fichier.

La table io fournit également trois descripteurs de fichiers prédéfinis avec leur sens habituel à partir du langage C: io.stdin, io.stdout, et io.stderr.

Un descripteur de fichier est un "userdata" contenant le flux de fichier (FILE *), avec un caractère distinctif "Metatable" créée par la bibliothèque I/O.

Sauf indication contraire, toutes les fonctions I / O retourne nil en cas d'échec (plus un message d'erreur en second) et une valeur différente de nil en cas de succès.

Ouverture de fichier (io.open)

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

Cette fonction ouvre un fichier, dans le mode spécifié par la chaîne de caractères mode. Elle retourne un nouveau descripteur de fichier, ou, en cas d'erreur, nil, plus un message d'erreur.

La chaîne mode peut avoir une des valeurs suivantes:

"r" mode lecture (par défaut);
"w" mode d'écriture;
"a" append mode;
"r +" mode mise à jour, toutes les données précédentes sont préservée;
"w +" mode mise à jour, toutes les données précédentes sont effacées;
"a +" append mode mise à jour, les données précédentes sont conservées, l'écriture n'est autorisée qu’à la fin du fichier.

La chaîne de caractères mode peuvent avoir un b la fin ce qui est indispensable pour ouvrir un fichier en mode binaire. Cette chaîne de caractères est exactement la même que celle qui est utilisé dans la fonction fopen  du langage C standard.

Fermeture de fichier (io.close)

io.close ([file])

Equivalent à file.close. Sans un fichier, il clôt le fichier de sortie par défaut.

Vide le fichier (io.flush)

io.flush ()

Equivalent à file : flush sur le fichier de sortie par défaut.

Définir le fichier d’entrée par défaut (io.input)

(io.input [fichier])

Lorsqu'elle est appelée avec un nom de fichier, il ouvre le fichier nommé (en mode texte), et l'utilise comme descripteur d'entrée par défaut. Lorsque cette fonction est appelée avec un descripteur de fichier, elle établit simplement ce descripteur de fichier comme le fichier d'entrée par défaut. Lorsqu'elle est appelé sans paramètres, elle renvoie descripteur de fichier d'entrée actuel par le défaut.

En cas d'erreur, cette fonction déclenche l'erreur, au lieu de retourner un code d'erreur.

Lecture ligne par ligne (io.lines)

io.lines ([file])

Ouvre le nom de fichier donné en lecture et retourne une fonction itération qui, chaque fois qu'elle est appelée, retourne une nouvelle ligne à partir du fichier. Exemple de construction:

for line in io.lines(filename) do ... end

Cette syntaxe parcourir toutes les lignes du fichier. Lorsque la fonction itération détecte la fin du fichier, elle ferme le fichier et renvoie nil (pour terminer la boucle).

Un appel à io.lines  (sans nom de fichier) est équivalent à io.input ():line() qui parcourt les lignes du fichier d'entrée par défaut.

Définir le fichier de sortie par défaut (io.output)

(io.output [file])

Comparable à io.input, mais fonctionne sur le fichier de sortie par défaut.

Lecture de fichier (io.read)

io.read (format1, ...)

Equivalent à io.input (): read.

Ouverture d’un fichier temporaire (io.tmpfile)

io.tmpfile ()

Retourne un descripteur de fichier temporaire. Ce fichier est ouvert en mode mise à jour et il est automatiquement supprimé lorsque le programme se termine.

Vérification de descripteur de fichier (io.type)

(io.type obj)

Vérifie si obj est un descripteur de fichier valide. Renvoie la chaîne "file" si obj est un descripteur de fichier ouvert, "closed file" si obj est un descripteur de fichier fermé, et nil si obj n'est pas un descripteur de fichier.

Ecriture dans un fichier (io.write)

io.write (valeur1, ...)

Equivalent à io.output (): write.

Fermeture de fichier (f: Close)

f:close ()

Ferme le fichier f.

Sauve les données du fichier (f: flush)

f:flush ()

Enregistre les données écrites sur le fichier f.

Lecture ligne par ligne (f:lines)

f:lines ()

Retourne une fonction itération qui, chaque fois qu'elle est appelée, retourne une nouvelle ligne à partir du fichier f. Par conséquent, la construction


for line in f:lines() do ... end

va parcourir toutes les lignes du fichier de f. (Contrairement io.lines, cette fonction ne ferme pas le fichier lorsque la boucle est finie.)

Lecture de fichier (f :read)

f: read (format1, ...)

Lit le fichier f, selon les formats de données, qui précisent ce qu'il faut lire. Pour chaque format, la fonction retourne une chaîne (ou un nombre) ainsi que  les caractères lus, ou nil si elle ne peut pas lire des données avec le format spécifié. Lorsqu'elle est appelé sans format, elle utilise un format par défaut qui lit la ligne suivante en entier (voir ci-dessous).

Les formats disponibles sont :


"* n" lit un nombre, ceci est le seul format qui retourne un nombre au lieu d'une chaîne.
"* un" lit le fichier entier, à partir de la position actuelle. Sur la fin du fichier, elle retourne la chaîne vide.
"* l", lit la ligne suivante (en sautant à la fin de ligne), retourne nil à la fin du fichier. Il s'agit du format par défaut.
Numéro lit une chaîne avec un nombre maximum de caractères, retourne nil à la fin du fichier. Si le nombre est égal à zéro, elle ne lit rien et renvoie une chaîne vide ou nil à la fin du fichier.

Se positionne sur l’index dans un fichier (f:seek)

f: seek ([whence] [, offset])

Définit et renvoie la position de l'index pour le fichier f, mesurée à partir du début du fichier, à la position donnée en offset en plus d'une base spécifiée par la chaîne, comme suit:


"set" est la position 0 (début du fichier);
"cur" est la position actuelle;
"end" est la fin du fichier;
En cas de succès, la fonction retourne la position du fichier final, exprimé en octets depuis le début du fichier. Si cette fonction échoue, elle retourne nil, en plus d'une chaîne de caractères décrivant l'erreur.

La valeur par défaut pour « whence » est "cur", et pour l'offset est 0. Par conséquent, le fichier d'appel: seek () retourne la position du fichier en cours, sans le modifier, la fonction file: seek ( "SET") définit la position au début du fichier (et renvoie 0) et la fonction file:seek ( "end"), fixe la position à la fin du fichier, et renvoie sa taille.

Ecriture d’arguments (f:write)

f: write (valeur1, ...)

Écrit la valeur de chacun de ses arguments dans le fichier f. Les arguments doivent être des chaînes ou des numéros. Pour écrire d'autres valeurs, utiliser toString ou String.Format avant d'écrire dans le fichier.



LUTEUS www.loriotpro.com