본문으로 건너뛰기

파일을 줄 배열 형태로 읽어오기 (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, "줄")