function testReaderSeek() { $f = new File("/" . FRAMEWORK_CORE_PATH . "tests/io/reader_writer/scanf_test.txt"); $reader = $f->openReader(); $result = $reader->scanf("%2d %2d %s"); $reader->seek(0); $this->assertEqual($reader->pos(), 0, "La posizione non e' tornata zero dopo seek(0)!!!"); $result2 = $reader->scanf("%2d %2d %s"); $this->assertEqual($result[0], $result2[0], "I valori letti non corrispondono!!"); $this->assertEqual($result[1], $result2[1], "I valori letti non corrispondono!!"); $this->assertEqual($result[2], $result2[2], "I valori letti non corrispondono!!"); }
function testAdvancedPrintfWriteThenRead() { $f = new File("/" . FRAMEWORK_CORE_PATH . "tests/io/reader_writer/readwrite2.txt"); $this->assertFalse($f->exists(), "Il file esiste gia'!!"); try { $writer = $f->openWriter(); $this->assertTrue($f->exists(), "Il file non e' stato creato!!"); $this->assertTrue($writer instanceof FileWriter, "L'oggetto non e' del tipo specificato!!"); $this->assertTrue($writer->isOpen(), "Il writer non e' aperto!!"); $writer->write("Ciao mondo!!!"); $writer->printf(" %02d %02d go", 12, 34); $writer->close(); $reader = $f->openReader(); $line = $reader->read(22); $this->assertEqual("Ciao mondo!!! 12 34 go", $line, "I dati letti non corrispondono!! : " . $line); $reader->close(); } catch (Exception $ex) { $this->fail("Errore nell'apertura del writer di un file non esistente!!"); } $f->delete(); }
static function getArchiveProperties($f) { if ($f instanceof File) { $source_file = $f; } else { $source_file = new File($f); } $reader = $source_file->openReader(); $binarydata = $reader->read(3); $data = unpack("a3", $binarydata); if ($data[1] !== self::FF_ARCHIVE_HEADER) { throw new InvalidDataException("Intestazione del file non valida : " . $data[1]); } $binarydata = $reader->read(2 + 2 + 2); $data = unpack("v3", $binarydata); if ($data[1] !== self::CURRENT_MAJOR || $data[2] !== self::CURRENT_MINOR || $data[3] !== self::CURRENT_REV) { throw new InvalidDataException("Versione del file non supportata!! : " . $data[1] . "-" . $data[2] . "-" . $data[3]); } //properties $binarydata = $reader->read(2); $data = unpack("v", $binarydata); $properties_length = $data[1]; if ($properties_length > 0) { $binarydata = $reader->read($properties_length); $data = unpack("a*", $binarydata); $properties = PropertiesUtils::readFromString($data[1], false); } else { $properties = array(); } $reader->close(); return $properties; }