LUA의 텍스트 파일을 일종의 테이블과 같은 변수로로드하는 방법은 무엇입니까?
문제
파일을 LUA의 변수에로드해야합니다.
내가 얻었다 고 가정 해 봅시다
name address email
각각 사이에 공간이 있습니다. 그러한 줄의 x -many가 어떤 종류의 객체에로드 될 텍스트 파일이 필요합니다. 또는 적어도 한 줄은 문자열을 공백으로 나눈 끈으로 절단해야합니다.
LUA에서 이런 종류의 직업이 가능하며 어떻게해야합니까? 나는 Lua를 처음 접했지만 인터넷에서 관련된 것을 찾을 수 없었습니다.
해결책
UROC의 답변을 확장하려면 :
local file = io.open("filename.txt")
if file then
for line in file:lines() do
local name, address, email = unpack(line:split(" ")) --unpack turns a table like the one given (if you use the recommended version) into a bunch of separate variables
--do something with that data
end
else
end
--you'll need a split method, i recommend the python-like version at http://lua-users.org/wiki/SplitJoin
--not providing here because of possible license issues
그러나 이것은 당신의 이름이 그 안에 공간을 가지고 있다는 경우를 다루지 않습니다.
다른 팁
당신은 읽고 싶어합니다 루아 패턴, 그것은의 일부입니다 문자열 라이브러리. 다음은 예제 기능 (테스트되지 않음)입니다.
function read_addresses(filename)
local database = { }
for l in io.lines(filename) do
local n, a, e = l:match '(%S+)%s+(%S+)%s+(%S+)'
table.insert(database, { name = n, address = a, email = e })
end
return database
end
이 기능은 Nonspace로 구성된 세 가지 하위 문자열을 가져옵니다 (%S
) 캐릭터. 실제 함수는 패턴이 실제로 일치하는지 확인하기 위해 약간의 오류를 확인할 수 있습니다.
제휴하지 않습니다 StackOverflow