seq.lua는 배열, 즉 정수 색인 테이블의 순차적 접근을 위한 간단한 편의용 라이브러리입니다.
사용 예:
local seq = require"seq"
local lines = seq.new_from_file('test.txt')
for line in lines:iter() do
if line:find('^.$') then break end -- .만 있는 줄이면
if line:find('^#') then
lines:next() -- #로 시작하는 줄은 건너 뜀
else
print(line)
end
end
assert(lines:current() == '.') -- 현재 원소(행)을 기억함
print"-----------------\n"
lines:prev() -- 또는 lines:unget()
for line in lines:iter() do
print(line) -- '.' 줄 바로 전 줄부터 출력됨
end
local seqob = seq.new(t)
주어진 테이블의 원소들을 담은 순차 배열 객체(seqobj)를 돌려줌
local seqobj = seq.new_from_file(fn)
주어진 파일의 텍스트의 행들을 담은 seqobj를 돌려줌.
seqobj:current()
-- 현재 원소를 돌려줌seqobj:next()
-- 다음 원소를 현재 원소로 만들고 그것을 돌려줌. 다음 원소가 없으면 nil을 돌려줌.seqobj:prev()
-- 이전 원소를 현재 원소로 만들고 그것을 돌려줌. 이전 원소가 없으면 nil을 돌려줌.seqobj:seek(n)
-- n번째 원소를 현재 원소로 만들고 그것을 돌려줌. 해당 원소가 없으면 nil을 돌려줌.
몇 가지 보조 함수들을 담은 테이블.
seq.util.explode(
src, sep, no_regex = false)
-- 주어진 문자열(src
)를 주어진 구분자(sep
)를 이용해서 분해한 결과를 담은 테이블을 돌려준다.table.concat()
의 반대.no_regex
를true
로 지정하면 구분자에 대해 패턴 부합이 적용되지 않는다.seq.util.trim(
str)
-- 주어진 문자열(str
)의 앞, 뒤 공백 문자들(빈칸, 탭, 줄 바꿈)을 제거한 결과를 돌려준다.seq.util.load_lines(
filename)
-- 주어진 텍스트 파일의 행들을 담은 테이블을 돌려준다.seq.util.load_text(
filename)
-- 주어진 텍스트 파일의 텍스트 전체를 돌려준다.