Modules/FileSystem/file/readShort
Jump to navigation
Jump to search
This function attempts to read a short (native type) from a file and returns it. The amount of bytes read should be two.
Syntax
short file:readShort ()
Returns
Returns the short integer if it was successfully read from the file, false otherwise.
Example
Click to collapse [-]
ClientThis snippet reads and writes string buffers into a custom file format.
local function writeBuffers( outFile, buffers )
-- Write header information.
outFile:writeInt( #buffers ); -- number of buffers
-- Write the buffers.
for m,n in ipairs( buffers ) do
local bufferContent = tostring( n );
-- Write header of buffer.
outFile:writeShort( #bufferContent ); -- length of buffer
-- Write the content
outFile:write( bufferContent );
end
end
local function readBuffers( inFile )
local buffers = {};
-- Read header information.
local numBuffers = inFile:readInt();
-- Make sure we read the int correctly.
-- Fails if the file has less than 4 bytes to read.
if ( numBuffers ) then
local n = 1;
while ( n <= numBuffers ) do
-- Read buffer header.
local bufferSize = inFile:readShort();
-- We always have to add the amount of buffers specified by the header.
-- Hence we always add a buffer to the result array.
local buffer = "";
if ( bufferSize ) then
-- Read the buffer.
buffer = inFile:read( bufferSize );
end
-- Append the result buffer.
buffers[n] = buffer;
n = n + 1;
end
end
return buffers;
end
-- Manager some buffers in a file.
local myBuffers = { "Hello World!", "Cooking eggs on a frying pan", "The American Pizzas taste awesome", "There is no bathroom." };
local theFile = fileCreate( "buffers.dat" );
-- First write the buffers into the file.
writeBuffers( theFile, myBuffers );
-- Now retrieve them again.
theFile:seek( 0, "set" );
myBuffers = readBuffers( theFile );
-- Output the buffers.
for m,n in ipairs( myBuffers ) do
outputChatBox( n );
end