2017-12-08 6 views
1

현재 저는 Minecraft 및 OpenComputers 게임에서 프로젝트 작업을하고 있습니다. 주요 코딩 언어는 루아입니다.루아에서 string.find를 반복합니다.

이제 문자열을 반복하는 멋진 솔루션을 찾아야합니다.

내 현재 솔루션은 다음과 같습니다 :이 예에서

local config = "key1=type1\nkey2=type2\nkey3=type3" 
local lines = {} 
while true do 
    local length = config:len() 
    local s, f = config:find("\n") 
    if s ~= nil then 
     table.insert(lines, config:sub(1, s-1)) 
     config = config:sub(f+1, length) 
    else 
     table.insert(lines, config) 
     break 
    end 
end 

내가 변수 config에 정적 문자열을 가지고 있지만 실제 코드에서 내가 config 파일에서 라인을 읽어 보시기 바랍니다.

내 솔루션이 작동하지만 깨끗하다고 ​​생각합니다. 더 깨끗한 솔루션이 있습니까? 당신이 파일의 라인을 반복하려면

+0

를 작동하지만 당신이 청소기 될 수 있다면, 당신은 HTTPS에 검토를 요청한다 보려면 : // 코드 검토를 .stackexchange.com/ –

+0

미래에 https://codereview.stackexchange.com/ –

+2

@StephenOstermiller에 속하기 때문에이 질문을 주제와 관련이 없으므로 투표 결과를 투표로 남겨 두겠습니다. 이유는 코드 검토를 사용하지 마십시오. 질문을 닫으십시오. 요청을 평가하고 * 너무 광범위 *, * 주로 의견 기반 * 등의 이유를 사용하십시오. [스택 오버플로 사용자를위한 Code Review에 대한이 답변에 대한 답변 **]에서 ** 당신이하지 말아야 할 사항 **을 참조하십시오. (https://codereview.meta.stackexchange.com/a/5778/120114) –

답변

2

, io.lines 사용

local lines = {} 
for l in io.lines("config.txt") do 
    table.insert(lines, l) 
end 
+0

대답은 너무 쉬웠습니다 ... 정말 고마워요. 때로는 숲 속에 나무가 보이지 않는 경우가 있습니다. 고맙습니다 –