示例#1
0
 public function testLineIterator()
 {
     $iterator = new LineIterator(new File(__DIR__ . "/../examples/testdata.txt"));
     $c = $iterator->count();
     $conv = new Converter();
     $conv->setIteratorSource($iterator, $c - 500);
     $list = new ArrayList($conv);
     $this->assertSame(500, $list->length());
     $conv2 = new Converter();
     $conv2->setIteratorSource($iterator, 0, 499);
     $list2 = new ArrayList($conv2);
     $this->assertSame(500, $list2->length());
 }
示例#2
0
            $row->brightness = new ObjectArray($json['sensordata']['brightness']);
            $row->indoor = new ObjectArray($json['sensordata']['indoor']);
            return true;
        } else {
            $row = null;
        }
        return false;
    }
    return true;
};
$conv = new Converter();
$conv->setRowConverter(new Serializer($rowser, $rowdeser));
// Field converters (string to number or datetime)
$conv->setFieldConverter('timestamp', new SerDateTime("Y-m-d\\TH:i:s.uO", new \DateTimeZone("Europe/Berlin")));
// Read testdata line by line
$iterator = new LineIterator(new File(__DIR__ . "/testdata.txt"));
// Load only last 500 records
$c = $iterator->count();
$conv->setIteratorSource($iterator);
L::line("Converter created:", $watch->stop()->result());
/**
 * Create list and filter / group
 */
// Create list
$watch->start();
$list = new ArrayList($conv);
L::line("Data imported:", $watch->stop()->result());
// Stats
echo "\n";
L::line($list->length(), "records");
L::line("First record:", $list->first()->timestamp->format('Y-m-d H:i:s'));