Я думаю, что вопрос правомерен, но ответ таков: вы навязываете логические условия, которые не оставляют места для какого-либо решения.
Так что, если вы можете избежать структуры CSV для своей пользовательской структуры, вы можете что-то сохранить,но вам это нужно, и это в значительной степени определяет ваше решение.Единственная оставшаяся переменная - это то, как вы кодируете текст, но вы не можете кодировать текст менее чем в 8 битах, вы можете просто использовать более высокие значения, такие как Unicode (16 бит).
Я не буду комментироватьпри использовании сжатия, как вы уже упоминали, что вы ищете альтернативные ответы, и вы знаете об этом.