Чтение файла в массив строк (LCC.web_file.get_lines)
Сигнатура
lines, err = LCC.web_file.get_lines(path, timeout?)
Параметры
- path
Строка, путь читаемого файла - timeout
Число, необязательный тайм-аут запроса (секунды), по умолчанию60
Возвращаемое значение
- lines
Таблица, массив строк содержимого файла (переводы строк приведены к\n); при сбое —nil - err
Строка илиnil, описание ошибки при сбое
Описание
Читает весь файл и разбивает его на массив строк.
Перед чтением\r\nприводится к\n.
Сочетание чтения и записи
Если файл заканчивается переводом строки, get_lines сохраняет пустую строку, полученную при разбиении в конце. Например, текст из двух строк "A\nB\n" возвращает {"A", "B", ""}; передача этого массива в set_range_lines(path, 1, lines) записывает три строки, последняя из которых пустая.
Чтобы читать и заменять содержимое по номерам строк, используйте get_range_lines вместе с set_range_lines. Чтобы прочитать, изменить и перезаписать весь файл, используйте get_lines вместе с set_lines. set_lines перезаписывает файл целиком и не подходит для частичной замены.
В обоих сочетаниях чтение и запись выполняются отдельными запросами, поэтому весь цикл чтения, изменения и записи не является атомарным. При одновременной записи необходимо координировать доступ, чтобы не перезаписать изменения, сделанные после чтения.
Пример
local lines, err = LCC.web_file.get_lines("/配置/list.txt")
if not lines then
error(err)
end
print("共有", #lines, "行")