Hello!
This module can be usable for people who want's to make file based saving on their servers just simply as packets.
Code:
Code:
/* Binary-based bit stream file class by Sative */
class BitStreamFile extends file
{
function contructor(path, pattern)
{
base.constructor(path, pattern);
}
function writeBool(val)
{
base.writen(val.tointeger(), 'b');
}
function writeChar(val)
{
base.writen(val, 'c');
}
function writeInt8(val)
{
base.writen(val, 'c');
}
function writeUInt8(val)
{
base.writen(val, 'b');
}
function writeInt16(val)
{
base.writen(val, 's');
}
function writeUInt16(val)
{
base.writen(val, 'w');
}
function writeInt32(val)
{
base.writen(val, 'i');
}
function writeFloat32(val)
{
base.writen(val, 'f');
}
function writeFloat64(val)
{
base.writen(val, 'd');
}
function readBool()
{
return base.readn('b');
}
function readChar()
{
return base.readn('c');
}
function readInt8()
{
return base.readn('c');
}
function readUInt8()
{
return base.readn('b');
}
function readInt16()
{
return base.readn('s');
}
function readUInt16()
{
return base.readn('w');
}
function readInt32()
{
return base.readn('i');
}
function readFloat32()
{
return base.readn('f');
}
function readFloat64()
{
return base.readn('d');
}
function writeString(val)
{
local len = val.len();
writeUInt16(len);
for(local i = 0; i < len; i++)
writeChar(val[i]);
}
function readString()
{
local len = readUInt16();
local result = "";
for(local i = 0; i < len; i++)
result += format("%c", readChar());
return result;
}
}
Example:
Code:
addEventHandler("onInit", function()
{
local myFile = BitStreamFile("test.txt", "wb+");
myFile.writeBool(true);
myFile.writeInt16(1650);
myFile.writeString("Test!");
myFile.close();
myFile = BitStreamFile("test.txt", "rb");
print(myFile.readBool());
print(myFile.readInt16());
print(myFile.readString());
myFile.close();
});
![[Image: CPCFNwD.png]](http://i.imgur.com/CPCFNwD.png)