Exemplo n.º 1
0
 function rewind()
 {
     parent::rewind();
     rewind($this->_file_handler);
     if (($this->_header = fgetcsv($this->_file_handler, 0, $this->_delimiter)) == false) {
         throw new \Exception("Reading of Header was failed");
     }
 }
Exemplo n.º 2
0
    public function testReader()
    {
        $text = <<<HTML
HELLO WORLD
HTML;
        $reader = new Reader($text);
        $this->assertEquals(strlen($text), strlen(trim($text)));
        $this->assertEquals("HE", $reader->read(2));
        $this->assertEquals(strlen($text), $reader->length());
        $this->assertEquals(6, $reader->moveCursor(6)->getCursor());
        $this->assertEquals('WORLD', $reader->readToEnd());
        $this->assertEquals('HELLO WORLD', $reader->rewind()->readToEnd());
        $this->assertEquals('HELLO ', $reader->readAndGo(6));
        $this->assertEquals('WORLD', $reader->readToEnd());
        # Reset position
        $reader->rewind();
        $this->assertNotFalse($reader->match('/(?=[a-z])/iA'));
        $this->assertEquals('HELLO', $reader->match('/\\w+/A'));
        $this->assertEquals(0, $reader->getCursor());
        $this->assertFalse($reader->matchAndGo('/\\d+/A'));
        $this->assertEquals('HELLO', $reader->matchAndGo('/\\w+/A'));
        $this->assertEquals(' ', $reader->matchAndGo('/\\s+/A'));
        $this->assertEquals('WORLD', $reader->matchAndGo('/\\w+/A'));
        $this->assertTrue($reader->isEnd());
        $reader->rewind();
        $this->assertEquals('HELLO WORLD', $reader->readToEndAndGo());
        $this->assertEquals(11, $reader->length());
        $this->assertEquals(10, $reader->getCursor());
        $this->assertTrue($reader->isEnd());
        $reader = new Reader('
		Hello
		World
		');
        $reader->setCursor(strpos($reader->readAll(), 'World'));
        $this->assertEquals(3, $reader->getLine());
        $this->assertEquals(2, $reader->getColumn());
    }
Exemplo n.º 3
0
 function rewind()
 {
     parent::rewind();
     rewind($this->_file_handler);
 }
Exemplo n.º 4
0
 /**
  * Realiza la revision del archivo
  *
  * @param string $fileName
  */
 protected function initialize(Reader $reader)
 {
     $this->checkCsvFile($reader->getFilename());
     if (count($this->rules) === 0) {
         throw new Exception(' No se puede revistar el documento sin antes haber definido reglas @ ' . __LINE__);
     }
     $index = $reader->getHeaders();
     if (count($this->index) > 0) {
         $faltan = array_diff($this->index, $index);
         if (count($faltan)) {
             $this->addError('Se detectaron columnas faltantes en el archivo, se necesitan ' . implode(', ', $this->index) . ' y se encontraron ' . implode(', ', $index) . ' Faltando ' . implode(', ', $faltan) . '');
         }
     }
     $reader->rewind();
     while ($reader->valid()) {
         $this->applyRules($reader->current(), $reader->getLineNumber());
         $reader->next();
     }
 }