-
Notifications
You must be signed in to change notification settings - Fork 2
reg_ru
aspadm edited this page Oct 11, 2018
·
2 revisions
Упакованный INI файл
Файл начинается с маленького заголовка:
uint magic; // FB 3E AB 45
ushort sections_count;
После него хранится массив смещений секций:
typedef struct
{
ushort unknown;
uint offset;
} section_offset;
section_offset offsets[sections_count];
Теперь можно прочесть каждую секцию по её смещению:
ushort keys_count;
ushort section_name_len;
char section_name[section_name_len];
Секция состоит из нескольких ключей:
ushort unknown;
uint key_offset; // локальное смещение внутри секции
seek(file, section_offset + key_offset);
byte key_type;
ushort key_name_len;
char key_name[key_name_len];
Если key_type > 127, то ключ хранит массив значений: ushort elements_count
, key_type -= 128
.
Теперь можно считать данные ключа:
0 - int value;
1 - float value;
2 - ushort len; char value[len];