Handle = false; } function __destruct() { if ($this->Handle) fclose($this->Handle); } public function OpenFile($FileName) { $this->FileName = $FileName; $this->CloseFile(); $this->Handle = fopen($FileName, 'rb'); if (!$this->Handle) die(str_replace('%s', $FileName, FILE_NOT_FOUND)); } public function CreateFile($FileName) { $this->FileName = $FileName; $this->CloseFile(); $this->Handle = fopen($FileName, 'wb+'); if (!$this->Handle) die(str_replace('%s', $FileName, FILE_NOT_FOUND)); } public function CloseFile() { if ($this->Handle) fclose($this->Handle); } public function ReadBlock($Count) { return fread($this->Handle, $Count); } public function ReadByte() { return fread($this->Handle, 1); } public function ReadUint() { $val = unpack('V*', fread($this->Handle, 4)); return $val[1]; } public function ReadInt() { $val = unpack('I*', fread($this->Handle, 4)); return $val[1]; } public function ReadFloat() { $val = unpack('f*', fread($this->Handle, 4)); return $val[1]; } public function ReadChar() { return fread($this->Handle, 1); } public function ReadLine() { return fgets($this->Handle); } public function ReadTextLine() { return fgets($this->Handle); } public function WriteBlock($Value, $Count) { fwrite($this->Handle, $Value, $Count); } public function WriteByte($Value) { fwrite($this->Handle, pack('C*', $Value), 1); } public function WriteUint($Value) { fwrite($this->Handle, pack('V*', $Value), 4); } public function WriteInt($Value) { fwrite($this->Handle, pack('I*', $Value), 4); } public function WriteFloat($Value) { fwrite($this->Handle, pack('f*', $Value), 4); } public function WriteChar($Value) { fwrite($this->Handle, $Value, 1); } public function WriteString($Value) { fwrite($this->Handle, $Value); } public function WriteLine($Value) { fputs($this->Handle, $Value); } public function SetPosition($Position) { fseek($this->Handle, $Position, SEEK_SET); } public function GetPosition() { return ftell($this->Handle); } public function GetSize() { return filesize($this->FileName); } public function SetSize($Size) { return ftruncate($this->Handle, $Size); } public function EOF() { return feof($this->Handle); } }