Passer au contenu principal

Lire un fichier sous forme de tableau de lignes (LCC.web_file.get_lines)

Déclaration​

lines, err = LCC.web_file.get_lines(path, timeout?)

Paramètres​

  • path
    Type chaîne, chemin du fichier à lire
  • timeout
    Type numérique, facultatif ; délai d'attente de la demande en secondes, 60 par défaut

Valeurs de retour​

  • lines
    Type table, contenu du fichier sous forme de tableau de lignes (sauts de ligne uniformisés en \n) ; nil en cas d'échec
  • err
    Type chaîne ou nil, description de l'erreur en cas d'échec

Description​

Lit tout le fichier et le découpe en tableau de lignes.
Avant la lecture, convertit uniformément \r\n en \n.

Associer lecture et écriture​

Lorsqu’un fichier se termine par un saut de ligne, get_lines conserve la chaîne vide issue du découpage à la fin. Par exemple, le texte de deux lignes "A\nB\n" renvoie {"A", "B", ""} ; passer ce tableau à set_range_lines(path, 1, lines) écrit trois lignes, dont la dernière est vide.

Pour lire et remplacer du contenu par numéro de ligne, associez get_range_lines à set_range_lines. Pour lire, modifier et écraser le fichier entier, associez get_lines à set_lines. set_lines écrase tout le fichier et ne convient pas aux remplacements partiels.

Dans les deux cas, la lecture et l’écriture sont des requêtes distinctes : la séquence complète de lecture, modification et écriture n’est donc pas atomique. En cas d’écritures concurrentes, coordonnez les accès pour éviter d’écraser des modifications effectuées après la lecture.

Exemple​

local lines, err = LCC.web_file.get_lines("/配置/list.txt")
if not lines then
error(err)
end
print("共有", #lines, "行")