Пример #1
0
 /**
  * Scan TSV file and return the keys, offsets and lengths of each line
  *
  * @param string $tsv
  * @param int[] $sortPositions
  * @param TsvSerializerInterface $serializer
  * @return array
  */
 private function index($tsv, $sortPositions, $serializer)
 {
     $keys = array();
     $offsets = array();
     $lengths = array();
     $resource = $this->fopen($tsv, "r");
     $offset = $this->ftell($resource);
     while (($line = $serializer->fgets($resource)) !== FALSE) {
         if ($line == "\n") {
             continue;
         }
         $values = $serializer->unserialize($line);
         $keys[] = $this->constructKey($values, $sortPositions);
         $offsets[] = $offset;
         $lengths[] = ($newOffset = $this->ftell($resource)) - $offset;
         $offset = $newOffset;
     }
     $this->close($resource);
     return array($keys, $offsets, $lengths);
 }
Пример #2
0
 private function tupleFromLine($line)
 {
     return $this->serializer->unserialize($line);
 }