Есть структура:
struct Item
{
std::string str_utf_8;
unsigned long len;
unsigned long position;
bool flag;
};
Есть их список. Надо человеко-френдли сохранить в файл.
Хотел в json сохранять - заюзал boost::property_tree::write_json(). Оказалось, что json сохраняет символы выше 127 специальной конструкцией \uXXXX. Логично, но хотелось, чтобы юзер без спецсредств UTF-8 строки глазами читал в таком файле. Вдобавок оказалось, что read_json() обратно эту хрень ещё и читать не умеет - советуют jsoncpp-0.5.0 юзать.
Ну его нах!
Захотелось написать записыватель-считыватель примитивного формата, типа:
<длина utf-8 мяса в байтах> <байты строки> <ничего не значащие пробелы и декоративные переводы строки> <параметр1> <параметр2>
Выглядеть это будет так примерно:
81 текстовая строка с пробелами на 81 байт 99 88 T
81 текстовая строка с пробелами на 81 байт 99 88 T
81 текстовая строка с пробелами на 81 байт 99 88 T
81 текстовая строка с пробелами на 81 байт 99 88 T
Кто чё скажет? Может я гоню? Может есть более правильный путь?
Кстати, вспомнил про sqlite-БД. Скайп в ней свои логи хранит от чатов и всякие настройки вроде. Но через текстовый редактор неудобно зырить на это мясо.