PDA

View Full Version : Lưu 1 mảng khi viết script (Lưu dữ liệu)



sangpronhat
28-10-09, 04:13 PM
Code của mạnh tuyên :

function TaoBang(tTable, sTableName, sTab)
sTab = sTab or "";
sTmp = ""
sTmp = sTmp..sTab..sTableName.."={"

local tStart = 0
for key, value in tTable do

if tStart == 1 then
sTmp = sTmp..",\r\n"

else
sTmp = sTmp.."\r\n"
tStart = 1
end
local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);
if(type(value) == "table") then
sTmp = sTmp..TaoBang(value, sKey, sTab.."\t");
else
local sValue = (type(value) == "string") and format("%q",value) or tostring(value);
sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
end

end
sTmp = sTmp.."\r\n"..sTab.."}"
--Msg2Player(sTmp)
return sTmp

end


function SaveData(file, string)
local f,e = openfile( file, "w+" )
if f then
write(f,string)
closefile(f)
return 1
else
local _,_,path = strfind(file, "(.+[/_\\]).+$")
if path ~= nil then execute("mkdir ".."\""..gsub(path, "/", "\\").."\"") end
f,e = openfile( file, "w+" )
if f then
write(f,string)
closefile(f)
return 2
else
return 0
end
end
endCode này hơi dài và khó hiểu tôi đã viết lại bằng một đoạn dễ hiễu hơn nhưng tôi sẽ để mọi người tự mò :D

Vì trong quá trính truy xuất các thông tin của mảng chỉ lưu lại khi server đang khởi động còn nếu tắt mở lại server thì dữ liệu mảng mất sạch do đó cần lưu lại thành 1 file khác để dữ liệu có thể giữ lâu dài

Cách xài
Chép vô file script có mảng cần lưu dữ liệu

VD:
Tôi có mảng

BAIHAT = {
{"Just Dance",1},
{"Don't Stop Till You Get Enough",2},
}Giờ múm lưu nó lại file Ex.lua



Ex=TaoBang(BAIHAT,"BAIHAT","")
SaveData("script/ex.lua",Ex) Ngay tức khắc thư mục script sẽ có ngay 1 file mới ghi lại mảng đó
Cấu trúc :


Bieng=TaoBang(Mảng : Table,Tên mảng : string,"")
SaveData(script file : string,bien)Cách khai báo khi sử dụng file đã lưu
Đầu file

BAIHAT={} --Khai báo tên mãng trước
Include("\\Script\\Ex.lua") --Lấy dữ liệuNhư vậy là ta có thể lưu trử dữ liệu và truy xuất dễ dàng hơn so với dùng file .txt
Chúc các bạn viết dc nhiều script hay:)):)):))

Hiện tại đã code ra nhiệm vụ phong kỳ thiên bảo khố và sơn thận miếu
Thiên hạ đệ nhất bang và chục cái event nhỏ mà làm biếng share quá

Mr.Rezo™
28-10-09, 09:58 PM
Hiện tại đã code ra nhiệm vụ phong kỳ thiên bảo khố và sơn thận miếu
Thiên hạ đệ nhất bang và chục cái event nhỏ mà làm biếng share quá

Bài viết chất lượng ... nhưng vẫn không chấp nhận kiểu ăn nói này ....

ohishu
12-11-09, 12:23 PM
Anh SangNhatPro Co Y!M K Cho Em Voi :o

giangleloi
13-11-09, 07:57 AM
Cách này rất hay để lưu dữ liệu, array hiện nay áp dụng nhiều trong JX!

DNTmaster
14-11-09, 05:29 PM
Bác ơi, jx thì toàn là xài table ko ah chứ ko phải array trong pascal đâu nhầm rồi cách làm này cũng hay nhưng thấy đoạn đó là của bác Tuyên thì phải nhỉ :)
cấu trúc lưu mảng vào file output cũng nhiều cách lưu nữa đó chỉ là 1 cách lưu thôi.
Ví dụ như viết dè vào, chèn, thêm,.... nhiều lắm chi tiết thì wa bài của HươngPhiêuBạt ấy

giangleloi
19-11-09, 09:46 AM
tui không biết nữa, chắc tui sai tại nhầm với Pascal, giờ điên đầu luôn => giờ chuyển qua chơi nhạc =))

thaihoa91
19-11-09, 12:05 PM
tui không biết nữa, chắc tui sai tại nhầm với Pascal, giờ điên đầu luôn => giờ chuyển qua chơi nhạc =))

Anh có nghe wa bài Thần thoại do em Remix rùi ! ^__^