The .acx file format is used to store static, structured data. It is essentially the predecessor to the .ex format. Unlike .ex, .acx files can only represent tables, and each file can only contain a single table.
Size (Bytes) | Name | Description |
---|---|---|
8 | magic | ‘ACX’ followed by 5 zero bytes |
4 | compressed_size | Size of the uncompressed data |
4 | uncompressed_size | Size of the compressed data |
compressed_size | data | The compressed data (zlib DEFLATE) |
The uncompressed data has the following structure.
Size (Bytes) | Name | Description |
---|---|---|
4 | column_count | The number of columns in the table |
column_count * 4 | column_types | The types of each column |
4 | row_count | The number of rows in the table |
Value | Type | Description |
---|---|---|
0 | int | 32-bit integer |
1 | float | 32-bit float (probably…) |
2 | string | Null-terminated string |
Immediately following the table header is the table data, in row-major order. Because columns can contain strings, each row has a variable width. You should consult the column_types list from the table header to determine the type of data in each cell.
There is no structure to this data beyond being a list of column_count * row_count cells. Strings are null-terminated; everything else is 4-bytes.