Đọc tệp thành mảng dòng (LCC.web_file.get_lines)
Khai báo
lines, err = LCC.web_file.get_lines(path, timeout?)
Tham số
- path
Chuỗi, đường dẫn tệp cần đọc - timeout
Số, tùy chọn; thời gian chờ yêu cầu (giây), mặc định là60
Giá trị trả về
- lines
Bảng, mảng nội dung tệp theo từng dòng (ký tự xuống dòng được chuẩn hóa thành\n); lànilkhi thất bại - err
Chuỗi hoặcnil, mô tả lỗi khi thất bại
Mô tả
Đọc toàn bộ nội dung tệp và tách thành mảng theo dòng.
Trước khi đọc,\r\nđược chuyển đổi thống nhất thành\n.
Ghép cặp thao tác đọc và ghi
Khi tệp kết thúc bằng ký tự xuống dòng, get_lines giữ lại chuỗi rỗng sinh ra khi tách ở cuối. Ví dụ, văn bản hai dòng "A\nB\n" trả về {"A", "B", ""}; truyền mảng này cho set_range_lines(path, 1, lines) sẽ ghi ba dòng, trong đó dòng cuối là dòng trống.
Để đọc và thay thế nội dung theo số dòng, hãy dùng cặp get_range_lines và set_range_lines. Để đọc, sửa và ghi đè toàn bộ tệp, hãy dùng cặp get_lines và set_lines. set_lines ghi đè toàn bộ tệp nên không phù hợp để thay thế một phần nội dung.
Trong cả hai cặp, đọc và ghi là các yêu cầu riêng biệt, nên toàn bộ quá trình đọc, sửa rồi ghi không phải là một thao tác nguyên tử. Khi có các thao tác ghi đồng thời, cần điều phối truy cập để tránh ghi đè những thay đổi phát sinh sau lần đọc.
Ví dụ
local lines, err = LCC.web_file.get_lines("/cấu-hình/list.txt")
if not lines then
error(err)
end
print("Tổng cộng", #lines, "dòng")