Fblockread

fblockread

Description:
Function fblockread allows you to read data from a file, without encoding and line terminators
Using an invalid handle will crash your server! Get a valid handle by using fopen or ftemp.
This function name starts with a lowercase letter.


Parameters:
(File:handle, buffer[], size = sizeof buffer)
int handle File handle to use, opened by fopen().
string buffer The buffer to save the read data in.
int size The number of cells to read.


Return Values:
The number of cells read. Zero, if the file end has been reached.


Examples:
// Define "some_enum"
enum _:some_enum
{
	some_data1,
	some_data2[20],
	Float:some_data3
}
 
// Declare "some_data"
new some_data[some_enum];
 
// ...
 
// Open "file.bin" in "read only" mode
new File:handle = fopen("file.bin", io_write)
 
	// Declare "file_len"
	file_len;
 
// Check, if "file.bin" is open
if(handle)
{
	// Success
 
	// Get the file length of "file.bin"
	file_len = flength(handle);
 
	// If file is equally large than the array
	if(file_len == (some_enum*4))
	{
		// Success
 
		// Read from "file.bin" into "some_data"
		fblockread(handle, some_data);
	}
	else
	{
		// Error
		print("\"file.bin\" is not compatible with the array.");
	}
 
	// Close "file.bin"
	fclose(handle);
}
else
{
	// Error
	print("Failed to open \"file.bin\".");
}


Related Functions
The following functions may be useful, as they are related to this function in one way or another.
  • fopen: Open a file (to read from or write to).
  • fclose: Close a file.
  • ftemp: Create a temporary file stream.
  • fremove: Remove a file.
  • fwrite: Write to a file.
  • fread: Read a file.
  • fputchar: Put a character in a file.
  • fgetchar: Get a character from a file.
  • fblockwrite: Write blocks of data into a file.
  • fseek: Jump to a specific character in a file.
  • flength: Get the file length.
  • fexist: Check, if a file exists.
  • fmatch: Check, if patterns with a file name matches.