コード例 #1
0
 def __init__(self, name_finfo_dlen_rlen, ofp):
     name, finfo, dlen, rlen = name_finfo_dlen_rlen
     if type(ofp) == type(''):
         ofname = ofp
         ofp = open(ofname, 'w')
     ofp.write('(This file must be converted with BinHex 4.0)\n\n:')
     hqxer = _Hqxcoderengine(ofp)
     self.ofp = _Rlecoderengine(hqxer)
     self.crc = 0
     if finfo is None:
         finfo = FInfo()
     self.dlen = dlen
     self.rlen = rlen
     self._writeinfo(name, finfo)
     self.state = _DID_HEADER
コード例 #2
0
 def getfileinfo(name):
     finfo = FInfo()
     # Quick check for textfile
     fp = open(name)
     data = open(name).read(256)
     for c in data:
         if not c.isspace() and (c < ' ' or ord(c) > 0x7f):
             break
     else:
         finfo.Type = 'TEXT'
     fp.seek(0, 2)
     dsize = fp.tell()
     fp.close()
     dir, file = os.path.split(name)
     file = file.replace(':', '-', 1)
     return file, finfo, dsize, 0
コード例 #3
0
 def _readheader(self):
     len = self._read(1)
     fname = self._read(ord(len))
     rest = self._read(19)
     self._checkcrc()
     type = rest[1:5]
     creator = rest[5:9]
     flags = struct.unpack('>h', rest[9:11])[0]
     self.dlen = struct.unpack('>l', rest[11:15])[0]
     self.rlen = struct.unpack('>l', rest[15:19])[0]
     self.FName = fname
     self.FInfo = FInfo()
     self.FInfo.Creator = creator
     self.FInfo.Type = type
     self.FInfo.Flags = flags
     self.state = _DID_HEADER
コード例 #4
0
class BinHex:
    def __init__(self, (name, finfo, dlen, rlen), ofp):
        if type(ofp) == type(''):
            ofname = ofp
            ofp = open(ofname, 'w')
            if os.name == 'mac':
                fss = FSSpec(ofname)
                fss.SetCreatorType('BnHq', 'TEXT')
        ofp.write('(This file must be converted with BinHex 4.0)\n\n:')
        hqxer = _Hqxcoderengine(ofp)
        self.ofp = _Rlecoderengine(hqxer)
        self.crc = 0
        if finfo is None:
            finfo = FInfo()
        self.dlen = dlen
        self.rlen = rlen
        self._writeinfo(name, finfo)
        self.state = _DID_HEADER