68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | /* | ||
|  | 文件名:UserStorage.nut | ||
|  | 路径:Core/BaseClass/UserStorage.nut | ||
|  | 创建日期:2024-11-14	08:43 | ||
|  | 文件用途:用户存档类 | ||
|  | */ | ||
|  | class Storage { | ||
|  | 
 | ||
|  |     Data = null; | ||
|  | 
 | ||
|  |     // 构造函数 | ||
|  |     constructor() { | ||
|  |         Data = {}; | ||
|  |     } | ||
|  | 
 | ||
|  |     //储存数据 | ||
|  |     function SetItem(Key, Value) { | ||
|  |         Data.rawset(Key, Value); | ||
|  |     } | ||
|  | 
 | ||
|  |     //储存数据列表 | ||
|  |     function SetItemList(T) { | ||
|  |         foreach(Key, Value in T) { | ||
|  |             Data.rawset(Key, Value); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取数据 | ||
|  |     function GetItem(Key) { | ||
|  |         if (Data.rawin(Key)) return Data.rawget(Key); | ||
|  |         return null; | ||
|  |     } | ||
|  | 
 | ||
|  |     //获取数据列表 | ||
|  |     function GetItemList(KeyList) { | ||
|  |         local T = {}; | ||
|  |         foreach(Key in KeyList) { | ||
|  |             local Buf = GetItem(Key); | ||
|  |             T.Key <- Buf; | ||
|  |         } | ||
|  |         return T; | ||
|  |     } | ||
|  | 
 | ||
|  |     function Load(Path) { | ||
|  |         try { | ||
|  |             local FileObj = file(Path, "r"); | ||
|  |             local IO = blobex(FileObj.readblob(FileObj.len())); | ||
|  |             local SaveStr = IO.GetString(IO.len()); | ||
|  |             Data = Json.Decode(SaveStr); | ||
|  |             FileObj.close(); | ||
|  |             return true; | ||
|  |         } catch (exception) { | ||
|  |             print("未读取到存档文件"); | ||
|  |             print(exception); | ||
|  |             return false; | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  |     function Save(Path) { | ||
|  |         local SaveStr = Json.Encode(Data); | ||
|  |         local FileObj = file(Path, "w"); | ||
|  |         foreach(char in SaveStr) { | ||
|  |             FileObj.writen(char, 'b'); | ||
|  |         } | ||
|  |         FileObj.flush(); | ||
|  |         FileObj.close(); | ||
|  |     } | ||
|  | } |