Example #1
0
 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)
Example #2
0
 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
Example #3
0
 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
Example #4
0
    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    
Example #5
0
 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
Example #6
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
Example #7
0
 def SymSize(self):
     return Structure.calcsize(self._symbol_structures[self.B.Otp])
Example #8
0
 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
Example #9
0
 def LoadBase(self, file):
     # Pirma nuskaitome bazinio simbolio turini
     self.B = Structure.read(self._base_structure, file)
     return True
Example #10
0
 def BaseSize(self):
     return Structure.calcsize(self._base_structure)
Example #11
0
 def ReadItself(self, file):
     self._NextBlock = Structure.read('LongInt', file)
     self._FilePos = Structure.read(('LongInt', 256), file)
Example #12
0
 def ReadItself(self, file):
     self._NextBlock = Structure.read('LongInt', file)
     self.IndexArr = Structure.read(('TIndex9', 256), file)
Example #13
0
 def Load(self, file):
     self.E = Structure.read('TElementDescriptor9', file)
Example #14
0
 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)