Ler um arquivo como um array de linhas (LCC.web_file.get_lines)
Declaração
lines, err = LCC.web_file.get_lines(path, timeout?)
Parâmetros
- path
Tipo string; caminho do arquivo a ler - timeout
Tipo number, opcional; tempo limite da solicitação (em segundos), padrão60
Valor de retorno
- lines
Tipo table; array formado pelo conteúdo do arquivo linha a linha (com o caractere de nova linha unificado para\n), ounilem caso de falha - err
Tipo string ounil; descrição do erro em caso de falha
Descrição
Lê todo o conteúdo do arquivo e o divide em um array por linha.
Antes da leitura, converte\r\nuniformemente para\n.
Combinar leituras e escritas
Quando um arquivo termina com uma quebra de linha, get_lines preserva a string vazia produzida pela divisão no final. Por exemplo, o texto de duas linhas "A\nB\n" retorna {"A", "B", ""}; passar esse array para set_range_lines(path, 1, lines) grava três linhas, sendo a última vazia.
Para ler e substituir conteúdo por número de linha, combine get_range_lines com set_range_lines. Para ler, modificar e sobrescrever o arquivo inteiro, combine get_lines com set_lines. set_lines sobrescreve o arquivo inteiro e não é adequado para substituições parciais.
Nas duas combinações, a leitura e a escrita são requisições independentes, portanto a sequência completa de leitura, modificação e escrita não é atômica. Se houver escritas concorrentes, coordene o acesso para evitar sobrescrever alterações feitas após a leitura.
Exemplo
local lines, err = LCC.web_file.get_lines("/配置/list.txt")
if not lines then
error(err)
end
print("共有", #lines, "行")