def read(self, fd): self.bounding_box.read(fd) self.numparts = binread_first(fd, "<i") self.numpoints = binread_first(fd, "<i") self.parts = binread(fd, "<" + "i" * self.numparts) self.points = [binread(fd, PointShape.read_fmt) for item in range(self.numpoints)]
def read(self, fd): self.bounding_box.read(fd) self.numpoints = binread_first(fd, "<i") self.points = [binread(fd, PointShape.read_fmt) for item in range(self.numpoints)] self.zrange = binread(fd, "<dd") self.zvalues = binread(fd, "<" + "d" * self.numpoints) self.mrange = binread(fd, "<dd") self.measures = binread(fd, "<" + "d" * self.numpoints)
def read(self, fd): """ Read the record that starts at the position the file descriptor cursor points to """ name = binread_first(fd, "32s") return { "field_name": name, }
def _read_header(self): sig = binread_first(self.fd, "<b") self.version = sig & self._MASK_GET_VERSION if self.version != self.DBASE_LEVEL5: sys.stderr.write("Opening non supported dbase file\n") self.has_memo = bool((sig & self._MASK_HAS_MEMO) >> 3) self.has_sqlt = bool((sig & self._MASK_HAS_SQLT) >> 4) year, month, day = binread(self.fd, "<bbb") self.last_update = datetime.date(year + 1900, month, day) self.records_no = binread_first(self.fd, "<i") self.header_bytes = binread_first(self.fd, "<h") self.record_bytes = binread_first(self.fd, "<h") # two empty bytes at this point if binread_first(self.fd, "!h") != 0: sys.stderr.write("expected empty bytes, found something\n") # skip these bytes, we don't need em for reading self.fd.seek(64)