2014-06-10 2 views
1

텍스트 파일에 테이블 내용을 쓰고 복원하는 방법을 알고 있습니다. 그러나 파일에 사용자 지정 테이블 형식을 작성하는 가장 좋은 방법은 무엇입니까?파일에서 테이블을로드하는 방법

내 상황은 다음과 같습니다. 나는 테이블 목록을 가지고 있습니다. objective1 = {} objective2 = {} objective3 = {} .. 각 목표는 조건에 따라 일부 조건을 검사하고 조건에 따라 일부 명령을 실행하는 자체 실행 기능을 가지고 있습니다. 각각의 새로운 게임은 임의의 목표 집합을 선택하여 배열에 저장합니다. Objectives = { [1] = { objective1 , objective3 } } 이제 임의의 목표 배열을 저장하고 나중에 파일에서로드하려고합니다.

배열의 테이블 이름을 저장하고 이름으로 복원 할 수 있습니까? 팩토리 패턴을 사용하거나 저장하기 위해 색인을 사용하지 않고도 해결책을 얻는 것이 좋을 것입니다.

답변

0

userdata (예 : SQL 또는 소켓 연결 또는 다른 라이브러리)의 데이터가없는 경우 the pickle module을 사용하여 데이터를 파일에 쓰고 나중에 동일한 데이터를로드 할 수 있습니다.

저는 개인적으로 다른 pickle library (로 작성 됨, Walter Doekes)을 사용합니다. 다음과 같이 사용법은 다음과 같습니다

local TableToStore = { 'a', 'b', 1, {'nested', 'content', {c = 'inside'}} } 
pickle.store('backupFileName.bak', {TableToStore = TableToStore}) 

및 데이터를 복원하기 위해, 단순히

dofile "backupFileName.bak" 

을 사용할 수 있습니다 그리고이 후 TableToStore라는 이름의 테이블을 다시 얻을 수 있습니다.

+1

응용 프로그램을 샌드 박스로 작성하거나 입력을 무차별 적으로 확인하지 않는 한'dofile' /'loadstring + pcall'을 호출하면 많은 보안 문제가 발생할 수 있습니다. 5.2에 대한 검증기 드롭을 야기한 바이트 코드 공격). –

관련 문제