private void ReadRows(BinaryReaderEx r, DataTable table) { object[] values = new object[columns.Count]; for (uint i = 0; i < this.RecordCount; i++) { uint RowLength = r.ReadUInt16(); for (int j = 0; j < columns.Count; j++) { switch (this.columns[j].Type) { case 1: values[j] = r.ReadByte(); break; case 2: values[j] = r.ReadUInt16(); break; case 3: values[j] = r.ReadUInt32(); break; case 5: values[j] = r.ReadSingle(); break; case 9: values[j] = r.ReadString(this.ColumnLengths[j]); break; case 11: values[j] = r.ReadUInt32(); break; case 12: values[j] = r.ReadByte(); break; case 13: values[j] = r.ReadInt16(); break; case 0x10: values[j] = r.ReadByte(); break; case 0x12: values[j] = r.ReadUInt32(); break; case 20: values[j] = r.ReadSByte(); break; case 0x15: values[j] = r.ReadInt16(); break; case 0x16: values[j] = r.ReadInt32(); break; case 0x18: values[j] = r.ReadString(this.ColumnLengths[j]); break; case 0x1a: //unk lenght values[j] = r.ReadString(); break; case 0x1b: values[j] = r.ReadUInt32(); break; } } table.Rows.Add(values); } }