Ejemplo n.º 1
0
	def fromRawData(self, rawFieldDef, startPos):
		'''system: decode dbf field definition from 32-byte raw dbf data
		jjk  02/18/98'''
		self.name = strutil.unzfill(rawFieldDef[:11])
		dataAddress = binnum.unsigned_from_Intel4(rawFieldDef[12:16])
		self.length = ord(rawFieldDef[16])
		self.start = startPos
		self.end = startPos + self.length
		self.decimalCount = ord(rawFieldDef[17])
Ejemplo n.º 2
0
	def _fromRawData(self, rawData):
		'''private: instantiate the receiver from dbf 32-byte raw header
		jjk  02/19/98'''
		self.version = ord(rawData[0])
		self.year = 1900+ord(rawData[1])
		self.month = ord(rawData[2])
		self.day = ord(rawData[3])
		self.recordCount = binnum.unsigned_from_Intel4(rawData[4:8])
		self.headerLength = binnum.unsigned_from_Intel2(rawData[8:10])
		self.recordLength = binnum.unsigned_from_Intel2(rawData[10:12])
Ejemplo n.º 3
0
 def readFieldDef(self, dbfs, start):
     '''read and dcode dbf field definition from binary input stream
     jjk  11/05/97'''
     self.name = dbfs.read(11)
     while (self.name[-1:] == '\000'): self.name = self.name[:-1]
     self.type = dbfs.read(1)
     dataAddress = binnum.unsigned_from_Intel4(dbfs.read(4))
     self.length = ord(dbfs.read(1))
     self.start = start
     self.end = start + self.length
     self.decimalCount = ord(dbfs.read(1))
     reserved = dbfs.read(14)
Ejemplo n.º 4
0
 def readFieldDef(self, dbfs, start):
     '''read and dcode dbf field definition from binary input stream
     jjk  11/05/97'''
     self.name = dbfs.read(11)
     while (self.name[-1:] == '\000'):
         self.name = self.name[:-1]
     self.type = dbfs.read(1)
     dataAddress = binnum.unsigned_from_Intel4(dbfs.read(4))
     self.length = ord(dbfs.read(1))
     self.start = start
     self.end = start + self.length
     self.decimalCount = ord(dbfs.read(1))
     reserved = dbfs.read(14)
Ejemplo n.º 5
0
 def readHeaderData(self, dbfs):
     '''private: read and dcode dbf header data from binary input stream
     jjk  11/05/97'''
     self.version = ord(dbfs.read(1))
     year = ord(dbfs.read(1))
     month = ord(dbfs.read(1))
     day = ord(dbfs.read(1))
     self.lastUpdate = "%2d/%2d/%2d" % (month, day, year)
     self.recordCount = binnum.unsigned_from_Intel4(dbfs.read(4))
     self.headerLength = binnum.unsigned_from_Intel2(dbfs.read(2))
     self.recordLength = binnum.unsigned_from_Intel2(dbfs.read(2))
     reserved = dbfs.read(20)
     self.fieldDefs = []
     fieldCount = (self.headerLength - 33) / 32
     start = 1  #byte 0 is delete flag
     for fn in range(fieldCount):
         fd = DbfFieldDef()
         fd.readFieldDef(dbfs, start)
         self.fieldDefs.append(fd)
         start = fd.end
     skip = dbfs.read(1)
Ejemplo n.º 6
0
 def readHeaderData(self, dbfs):
     '''private: read and dcode dbf header data from binary input stream
     jjk  11/05/97'''
     self.version = ord(dbfs.read(1))
     year = ord(dbfs.read(1))
     month = ord(dbfs.read(1))
     day = ord(dbfs.read(1))
     self.lastUpdate = "%2d/%2d/%2d" % (month, day, year)
     self.recordCount = binnum.unsigned_from_Intel4(dbfs.read(4))
     self.headerLength = binnum.unsigned_from_Intel2(dbfs.read(2))
     self.recordLength = binnum.unsigned_from_Intel2(dbfs.read(2))
     reserved = dbfs.read(20)
     self.fieldDefs = []
     fieldCount = (self.headerLength - 33) / 32
     start = 1 #byte 0 is delete flag
     for fn in range(fieldCount):
         fd = DbfFieldDef()
         fd.readFieldDef(dbfs, start)
         self.fieldDefs.append(fd)
         start = fd.end
     skip = dbfs.read(1)