def ReadItself(self, file): #print "f.tell(): ", file.tell() #print "50: ", file.read(8) self._NextBlock = Structure.read('LongInt', file) #print "StringIndexBlock:_NextBlock ", self._NextBlock self._Table = Structure.read(('TStringIndex', 256), file)
def LoadDynamic(self, file): #TPointSym8/9 -> turintis dinamine dali kurioje aprasomos sudedamosios grafines simbolio dalys #self.sPoly = Structure.read(('TCord', self.DataSize()), file) i = 0 while i < self.DataSize(): # viso galime nuskaityti self.DataSize() * 8 baitu SymEltHeader = Structure.read('TSymEltHeader', file) i += 2 # headeris - 16 baitu if self._version == 8: diamater = SymEltHeader.stDiameter - SymEltHeader.stLineWidth # 8 prie radiuso prideta po SymEltHeader.stLineWidth is abieju pusiu! SymEltHeader = Structure.update('TSymEltHeader', SymEltHeader, "stDiameter", diamater) self.Elements.append((SymEltHeader, [Cord(tcord) for tcord in Structure.read(('TCord', SymEltHeader.stnPoly), file)])) i += SymEltHeader.stnPoly # viena koordinate 8 baitai (4,4) return True
def ReadItself(self, file): if self._datalen != 0: #print "Strings, Read:", self._datalen, " $", file.read(self._datalen), "$" characters = Structure.read(('Byte', self._datalen), file) self._data = [chr(a) for a in characters] #x = [chr(a) for a in characters] #if x and x[1] == 'a': #print x data = [] i = 0 value = '' while i < len(characters): char = chr(characters[i]) if char == '\t': data.append(value) data.append(chr(characters[i+1])) # po tabo visada eina kodas i += 1 # praleidziam koda value = '' elif characters[i] == 0: # End of string data.append(value) break else: value += char i += 1 self._Descr = data return True
def __ocadHeader(self): """Reads the header information from a .ocad file.""" if not self.ocad: raise OcadfileException("Ocadfile Reader requires a ocadfile or file-like object. (no ocad file found") #print "Reading header..." ocad = self.ocad ocad.seek(0) hdr = Structure.read('TFileHeader', ocad) #print "header: ", hdr if hdr.OCADMark != OCAD_FILE_MAGIC: print "!WARNING!: Possible not OCAD file(%04X) !\n" % OCADMark #print "OCAD version = %d." % hdr.Version if hdr.Version >= 9: print "OCAD version = %d, subversion = %0d.%-d\n" % (hdr.Version, hdr.Subversion % 256, hdr.Subversion / 256) elif hdr.Version == 8: print "OCAD version = %d, subversion = %02d\n" % (hdr.Version, hdr.Subversion) elif hdr.Version == 7: print "OCAD version = %d, subversion = %02d.%0d\n" % (hdr.Version, hdr.Subversion / 256, hdr.Subversion % 256) else: # Older versions print "OCAD version = %d, subversion = %02d\n" % (hdr.Version, hdr.Subversion & 0x000F) if hdr.Version < 6: raise OcadfileException("Unsupported version!"); if hdr.Version > MAX_KNOWN_VERSION: print "!WARNING!: Later version of OCAD than known(%d.x) !\n" % MAX_KNOWN_VERSION self.hdr = hdr
def ReadItself(self, file): """Nuskaitome visa TElement isskyrus TCord masyva""" self._Descr.Load(file) # reikia pciam implementuoti vietoje semiau esanciu self.Sym = self._Descr.Sym() self.Poly = Structure.read(('TCord', self.nItem() + self.nText()), file) self.Visible = True self.LabelReference = None return 0
def __setup(self): if self.hdr.Version <= 8: #print "setup... Version <= 8" self.ocad.seek(self.hdr.SetupPos) default = [] if self.hdr.Version < 7: default = [0, "", 0, 0, 0, 0, 0] # paskutines TStp strukturos reiksmes, kuriu nebuvo ocad6 self.setup = Structure.read('TStp', self.ocad, default=default) #print "Setup: ", self.setup real_setup_size = self.ocad.tell() - self.hdr.SetupPos if real_setup_size != self.hdr.SetupSize: print "Error: Setup size mismatch!", real_setup_size, "!=", self.hdr.SetupSize
def SymSize(self): return Structure.calcsize(self._symbol_structures[self.B.Otp])
def LoadFixed(self, file): # dabar galim nuskaityti likusia fiksuota info #if ( !fread( Descr->Storage(), Descr->SymSize(), 1, f ) ) return -1; self.S = Structure.read(self._symbol_structures.get(self.B.Otp, 0), file) return True
def LoadBase(self, file): # Pirma nuskaitome bazinio simbolio turini self.B = Structure.read(self._base_structure, file) return True
def BaseSize(self): return Structure.calcsize(self._base_structure)
def ReadItself(self, file): self._NextBlock = Structure.read('LongInt', file) self._FilePos = Structure.read(('LongInt', 256), file)
def ReadItself(self, file): self._NextBlock = Structure.read('LongInt', file) self.IndexArr = Structure.read(('TIndex9', 256), file)
def Load(self, file): self.E = Structure.read('TElementDescriptor9', file)
def __symbolsHeader(self): """in OCAD 9 colors table moved to strings with type 9""" print "Reading symbols header..." if self.hdr.Version <= 8: self.ocad.seek(48) self.syhdr = Structure.read('TSymHeader', self.ocad)