#!/usr/bin/env python3 """Read GeViDB.mdb schema to understand table structure""" import sys import struct def read_mdb_header(filepath): """Read MDB1 database header""" try: with open(filepath, 'rb') as f: # Read first 4 bytes to confirm MDB1 format header = f.read(4) if header == b'MDB1': print("Confirmed: MDB1 format (Geutebruck proprietary)") print(f"Header: {header.hex()}") # Read more header info f.seek(0) first_512 = f.read(512) print(f"\nFirst 512 bytes (hex):") for i in range(0, len(first_512), 16): hex_str = ' '.join(f'{b:02x}' for b in first_512[i:i+16]) ascii_str = ''.join(chr(b) if 32 <= b < 127 else '.' for b in first_512[i:i+16]) print(f"{i:04x}: {hex_str:48s} {ascii_str}") else: print(f"Not MDB1 format. Header: {header}") except Exception as e: print(f"Error reading file: {e}") if __name__ == "__main__": db_path = r"C:\GEVISOFT\DATABASE\GeViDB.mdb" print(f"Reading: {db_path}\n") read_mdb_header(db_path)