mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-21 11:39:23 +01:00
71 lines
1.9 KiB
Lua
71 lines
1.9 KiB
Lua
local filesystem = require("filesystem")
|
|
local serialization = require("serialization")
|
|
local files = {}
|
|
|
|
----------------------------------------------------------------------------------------------------------------------------
|
|
|
|
function files.loadTableFromFile(path)
|
|
local file = io.open(path, "r")
|
|
local data = serialization.unserialize(file:read("*a"))
|
|
file:close()
|
|
return data
|
|
end
|
|
|
|
function files.saveTableToFile(path, tableToSave)
|
|
filesystem.makeDirectory(filesystem.path(path) or "")
|
|
local file = io.open(path, "w")
|
|
file:write(serialization.serialize(tableToSave))
|
|
file:close()
|
|
end
|
|
|
|
-- Открыть файл для чтения в байтном режиме
|
|
function files.openForReadingBytes(path)
|
|
local myFileStream = {}
|
|
|
|
myFileStream.luaFileStream = io.open(path, "rb")
|
|
|
|
function myFileStream.read(count)
|
|
return myFileStream.luaFileStream:read(count)
|
|
end
|
|
|
|
function myFileStream.readByteAsString()
|
|
return myFileStream.luaFileStream:read(1)
|
|
end
|
|
|
|
function myFileStream.readByteAsDec()
|
|
local readedByte = myFileStream.luaFileStream:read(1)
|
|
if readedByte then return string.byte(readedByte) else return nil end
|
|
end
|
|
|
|
function myFileStream.readByteAsHex()
|
|
local readedByte = myFileStream.luaFileStream:read(1)
|
|
if readedByte then return string.format("%02X", string.byte(readedByte)) else return nil end
|
|
end
|
|
|
|
function myFileStream.readByteAsDecimal()
|
|
return myFileStream.readByteAsDec()
|
|
end
|
|
|
|
function myFileStream.readByteAsHexadecimal()
|
|
return myFileStream.readByteAsHex()
|
|
end
|
|
|
|
function myFileStream.close()
|
|
myFileStream.luaFileStream:close()
|
|
end
|
|
|
|
return myFileStream
|
|
end
|
|
|
|
----------------------------------------------------------------------------------------------------------------------------
|
|
|
|
-- ecs.prepareToExit()
|
|
|
|
-- local file = files.open("test.txt", "rb")
|
|
-- for i = 1, 100 do
|
|
-- print(file.readByteAsHex())
|
|
-- end
|
|
-- file:close()
|
|
|
|
|
|
return files |