All pastes #60367 Raw Edit

Mine

public text v1 · immutable
#60367 ·published 2006-05-31 18:17 UTC
rendered paste body
class geodata:

    def writel(self,some_string):
        # writes to logfile
        self.log_file.write(str(some_string)+'\n')

    def convert_to_hex(self,some_string):
        # converts string to hex value
        if len(some_string)==0:
            return '00'
        charval = ord(some_string)
        hexval = hex(charval)
        hexstrlen = len(hexval)
        startpos = hexstrlen - 2
        if hexval[startpos] == 'x':
            startpos += 1
            hexval = '0'+hexval[startpos]
        else:
            hexval = hexval[startpos:hexstrlen]
        return hexval

    def handle_block0000(self):
        # still bleh
        z1_1 = self.conv_file.read(1)
        z1_2 = self.conv_file.read(1)
        z2_1 = self.conv_file.read(1)
        z2_2 = self.conv_file.read(1)
        return 'bleh'

    def handle_block0040(self):
        # block 4000 handler
        self.writel("block0040")
        for item in range(0,64):
            z1_1 = self.conv_file.read(1)
            z1_2 = self.conv_file.read(1)
            self.writel(self.convert_to_hex(z1_1) + self.convert_to_hex(z1_2))
        return 0

    def handle_block0041(self):
        # block 41000 handler
        self.writel("block0041")
        for item in range(0,64):
            layer = 0
            layercounter  = self.conv_file.read(1)
            self.writel("layercounter:" + str(int(self.convert_to_hex(layercounter),16)))
            for item2 in range(0,int(self.convert_to_hex(layercounter),16)):
                self.writel("layer:" + str(layer))
                z1_1 = self.conv_file.read(1)
                z1_2 = self.conv_file.read(1)
                self.writel("--" + self.convert_to_hex(z1_1) + self.convert_to_hex(z1_2))
                layer+=1
        return 0

    def __init__(self,filename):
        # main function
        self.conv_file = open(filename+'.dat','r')
        self.csv_file  = open(filename+'.csv','w')
        self.log_file  = open(filename+'.log','w')
        self.conv_file.seek(18) # header dont need that currently
        for loop1 in range(0,128):
            self.writel(loop1)
            for loop2 in range(0,128):
                self.writel(loop2)
                block1 = self.conv_file.read(1)
                block2 = self.conv_file.read(1)        
                block2_hex = self.convert_to_hex(block2)
                if block2_hex   == 'ff': self.writel("error")
                elif block2_hex == '00': self.writel("block0000")
                elif block2_hex == '40': self.handle_block0040()
                else: self.handle_block0041()
        self.conv_file.close()
        self.csv_file.close()
        self.log_file.close()

test1 = geodata('25_19_conv')
test2 = geodata('16_22_conv')