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')