2025-07-31 11:02:03 +02:00

57 lines
1.9 KiB
Lua

-- ====================================================================================
-- DCSEX.IO - HANDLES READING/WRITING FILES
-- ====================================================================================
-- DCSEx.io.canReadAndWrite()
-- DCSEx.io.load(fileName)
-- DCSEx.io.save(fileName, str)
-- ====================================================================================
DCSEx.io = {}
-------------------------------------
-- Returns true if the IO table has been unsanitized (allowing IO operations) and false if it hasn't been
-------------------------------------
-- @return A boolean
-------------------------------------
function DCSEx.io.canReadAndWrite()
return io ~= nil
end
-------------------------------------
-- Loads a string from a text file
-------------------------------------
-- @param fileName Name of the file to read
-- @return A string, or nil if something went wrong
-------------------------------------
function DCSEx.io.load(fileName)
-- IO table is sanitized, cannot read/write to disk
if not DCSEx.io.canReadAndWrite() then return nil end
local saveFile = io.open(fileName, "r")
if not saveFile then return nil end
local str = saveFile:read("*all")
saveFile:close()
return str
end
-------------------------------------
-- Writes a string to a text file
-------------------------------------
-- @param fileName Name of the file to write to. It will be overwritten if it exists.
-- @param values Key/value table containing the values to save
-- @param str String to write
-- @return True if everything went right, false otherwise
-------------------------------------
function DCSEx.io.save(fileName, str)
-- IO table is sanitized, cannot read/write to disk
if not DCSEx.io.canReadAndWrite() then return false end
local saveFile = io.open(fileName, "w")
if not saveFile then return false end
saveFile:write(str)
saveFile:close()
return true
end