У CArchive нет формата, который вы можете анализировать.Это просто двоичный файл.Вы должны знать, что в нем, чтобы знать, как это читать.Библиотека может облегчить чтение некоторых типов данных (CString
, CArray
и т. Д.), Но я не уверен, что вы найдете что-то подобное.
CArchive работает следующим образом (сохранение части):
CArchive ar;
int i = 5;
float f = 5.42f;
CString str("string");
ar << i << f << str;
Затем все это сбрасывается в двоичный файл.Вы должны прочитать двоичные данные и как-то их интерпретировать.Это легко в C ++, потому что MFC знает, как сериализовать типы, включая сложные типы, такие как CString
и CArray
.Но вам придется делать это самостоятельно, используя Ruby.
Например, вы можете прочитать 4 байта (потому что вы знаете, что int
такой большой) и интерпретировать его как целое число.Следующие четыре байта для float
.И затем вы должны увидеть, как загрузить CString, сначала он сохраняет длину, а затем данные, но вам нужно взглянуть на точный формат, который он использует.Вы можете создавать служебные функции для каждого типа, чтобы сделать вашу жизнь проще, но не ожидайте, что это будет просто.