Saltar al contenido principal

Leer un archivo como un array de líneas (LCC.web_file.get_lines)

Declaración​

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

Parámetros​

  • path
    Tipo string; ruta del archivo que se leerá
  • timeout
    Tipo numérico, opcional; tiempo de espera de la solicitud (segundos), predeterminado 60

Valores devueltos​

  • lines
    Tipo table; array de líneas que contiene el archivo (con los saltos de línea normalizados a \n); nil si falla
  • err
    Tipo string o nil; descripción del error cuando falla

Descripción​

Lee todo el contenido del archivo y lo divide en un array de líneas.
Antes de leer, convierte todos los saltos \r\n a \n.

Combinar lecturas y escrituras​

Cuando un archivo termina con un salto de línea, get_lines conserva la cadena vacía que resulta de la división al final. Por ejemplo, el texto de dos líneas "A\nB\n" devuelve {"A", "B", ""}; al pasar este array a set_range_lines(path, 1, lines), se escriben tres líneas, con la última vacía.

Para leer y sustituir contenido por número de línea, combina get_range_lines con set_range_lines. Para leer, modificar y sobrescribir todo el archivo, combina get_lines con set_lines. set_lines sobrescribe el archivo entero y no es adecuado para sustituciones parciales.

En ambas combinaciones, la lectura y la escritura son peticiones independientes, por lo que la secuencia completa de lectura, modificación y escritura no es atómica. Si hay escrituras concurrentes, coordina el acceso para evitar sobrescribir cambios realizados después de la lectura.

Ejemplo​

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