public void Process() { RandomAccess ra = RandomAccess.GetInstance(); ra.position = 0; Addr = ra.leLong(); if (Addr != 0) { throw new Exception("File doesn't start with 0x00000000 - it's not a TPS databse"); } HeaderSize = ra.leShort(); FileLength1 = ra.leLong(); FileLength2 = ra.leLong(); TopSpeed = ra.fixedLengthString(4); Zeros = ra.leShort(); LastIssuedRow = ra.beLong(); Changes = ra.leLong(); ManagementPageRef = ra.toFileOffset(ra.leLong()); PageStart = ra.toFileOffset(ra.leLongArray((0x110 - 0x20) / 4)); PageEnd = ra.toFileOffset(ra.leLongArray((0x200 - 0x110) / 4)); }