Skip to content

Instantly share code, notes, and snippets.

@h3lls
Created March 30, 2011 06:56
Show Gist options
  • Save h3lls/893979 to your computer and use it in GitHub Desktop.
Save h3lls/893979 to your computer and use it in GitHub Desktop.
Binary Parsing For FFXIV Log Files
logfile = open(logfilename, 'rb')
# read in the length of this files records
headerparts = struct.unpack("2l", logfile.read(8))
headerlen = headerparts[1] - headerparts[0]
header = struct.unpack(str(headerlen)+"l", logfile.read(headerlen*4))
# header * 4 bytes for each and another 8 bytes for the header size
offset = headerlen*4+8
for headerpos in range(len(header)):
if headerpos == 0:
startbyte = offset
endbyte = header[headerpos]
else:
startbyte = offset + header[headerpos-1]
endbyte = header[headerpos] - header[headerpos-1]
logfile.seek(startbyte)
logitem = logfile.read(endbyte)[2:]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment