mirror of
https://github.com/FlightControl-Master/MOOSE.git
synced 2025-10-29 16:58:06 +00:00
File functions
This commit is contained in:
parent
fad8800842
commit
fd426a96aa
@ -1772,3 +1772,137 @@ function UTILS.GenerateLaserCodes()
|
|||||||
end
|
end
|
||||||
return jtacGeneratedLaserCodes
|
return jtacGeneratedLaserCodes
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Function to save an object to a file
|
||||||
|
-- @param #string Path The path to use. Use double backslashes \\\\ on Windows filesystems.
|
||||||
|
-- @param #string Filename The name of the file. Existing file will be overwritten.
|
||||||
|
-- @param #table Data The LUA data structure to save. This will be e.g. a table of text lines with an \\n at the end of each line.
|
||||||
|
-- @return #boolean outcome True if saving is possible, else false.
|
||||||
|
function UTILS.SaveToFile(Path,Filename,Data)
|
||||||
|
-- Thanks to @FunkyFranky
|
||||||
|
-- Check io module is available.
|
||||||
|
if not io then
|
||||||
|
BASE:E("ERROR: io not desanitized. Can't save current file.")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check default path.
|
||||||
|
if Path==nil and not lfs then
|
||||||
|
BASE:E("WARNING: lfs not desanitized. File will be saved in DCS installation root directory rather than your \"Saved Games\\DCS\" folder.")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set path or default.
|
||||||
|
local path = nil
|
||||||
|
if lfs then
|
||||||
|
path=Path or lfs.writedir()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set file name.
|
||||||
|
local filename=Filename
|
||||||
|
if path~=nil then
|
||||||
|
filename=path.."\\"..filename
|
||||||
|
end
|
||||||
|
|
||||||
|
-- write
|
||||||
|
local f = assert(io.open(filename, "wb"))
|
||||||
|
f:write(Data)
|
||||||
|
f:close()
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Function to save an object to a file
|
||||||
|
-- @param #string Path The path to use. Use double backslashes \\\\ on Windows filesystems.
|
||||||
|
-- @param #string Filename The name of the file.
|
||||||
|
-- @return #boolean outcome True if reading is possible and successful, else false.
|
||||||
|
-- @return #table data The data read from the filesystem (table of lines of text). Each line is one single #string!
|
||||||
|
function UTILS.LoadFromFile(Path,Filename)
|
||||||
|
-- Thanks to @FunkyFranky
|
||||||
|
-- Check io module is available.
|
||||||
|
if not io then
|
||||||
|
BASE:E("ERROR: io not desanitized. Can't save current state.")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check default path.
|
||||||
|
if Path==nil and not lfs then
|
||||||
|
BASE:E("WARNING: lfs not desanitized. Loading will look into your DCS installation root directory rather than your \"Saved Games\\DCS\" folder.")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set path or default.
|
||||||
|
local path = nil
|
||||||
|
if lfs then
|
||||||
|
path=Path or lfs.writedir()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set file name.
|
||||||
|
local filename=Filename
|
||||||
|
if path~=nil then
|
||||||
|
filename=path.."\\"..filename
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check if file exists.
|
||||||
|
local exists=UTILS.CheckFileExists(Path,Filename)
|
||||||
|
if not exists then
|
||||||
|
BASE:E(string.format("ERROR: File %s does not exist!",filename))
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- read
|
||||||
|
local file=assert(io.open(filename, "rb"))
|
||||||
|
local loadeddata = {}
|
||||||
|
for line in file:lines() do
|
||||||
|
loadeddata[#loadeddata+1] = line
|
||||||
|
end
|
||||||
|
file:close()
|
||||||
|
return true, loadeddata
|
||||||
|
end
|
||||||
|
|
||||||
|
--- Function to check if a file exists.
|
||||||
|
-- @param #string Path The path to use. Use double backslashes \\\\ on Windows filesystems.
|
||||||
|
-- @param #string Filename The name of the file.
|
||||||
|
-- @return #boolean outcome True if reading is possible, else false.
|
||||||
|
function UTILS.CheckFileExists(Path,Filename)
|
||||||
|
-- Thanks to @FunkyFranky
|
||||||
|
-- Function that check if a file exists.
|
||||||
|
local function _fileexists(name)
|
||||||
|
local f=io.open(name,"r")
|
||||||
|
if f~=nil then
|
||||||
|
io.close(f)
|
||||||
|
return true
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check io module is available.
|
||||||
|
if not io then
|
||||||
|
BASE:E("ERROR: io not desanitized. Can't save current state.")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check default path.
|
||||||
|
if Path==nil and not lfs then
|
||||||
|
BASE:E("WARNING: lfs not desanitized. Loading will look into your DCS installation root directory rather than your \"Saved Games\\DCS\" folder.")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set path or default.
|
||||||
|
local path = nil
|
||||||
|
if lfs then
|
||||||
|
path=Path or lfs.writedir()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set file name.
|
||||||
|
local filename=Filename
|
||||||
|
if path~=nil then
|
||||||
|
filename=path.."\\"..filename
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Check if file exists.
|
||||||
|
local exists=_fileexists(filename)
|
||||||
|
if not exists then
|
||||||
|
BASE:E(string.format("ERROR: File %s does not exist!",filename))
|
||||||
|
return false
|
||||||
|
else
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user