

Программирование на языке MFC
Мой второй блог в серии программирования
Сериализация и архивы
Иногда программе может потребоваться сохранить данные, сформированные в каком-то виде в оперативной памяти, на каком-то устройстве, обеспечивающем длительное хранение данных. Такими устройствами могут быть дискета, винчестер, компакт-диск и т.д. При этом программа должен обеспечить сохранение текущего состояния совокупности своих объектов таким образом, чтобы затем, при повторном запуске программы, текущее состояние объектов могло бы быть полностью восстановлено. Совокупность действий, обеспечивающих, с одной стороны, сохранение текущих данных в форме, позволяющей последующее восстановление, и, с другой стороны, непосредственно восстановление текущего состояния данных, называется сериализацией.
Для того чтобы реализовать сериализацию, можно пойти привычным путем – в программе создать файл, затем при помощи стандартных операций записи в файл «сбросить» в него данные, потом при помощи таких же стандартных операций считать данные. Но дело в том, что программе придется работать не с объектами, а с некоторыми блоками памяти или, на худой конец, со строками. Все будет работать нормально, но каждый раз придется считать, какую переменную куда записать, помнить о формате записанной информации… Ужас!
Можно, конечно, пойти другим путем. В каждой программе разработать методы, реализующие сериализацию для каждого конкретного класса. Можно при этом использовать уже имеющиеся в языках средства для записи данных в файл.
Но я не зря выше употребил слово «стандартные». Дело в том, что MFC позволяет программистам использовать процедуры се-риализации, которые являются стандартными для MFC. Конечно, процедуру сериализации для всех возможных объектов и организованных в памяти структур данных написать невозможно, но вполне возможно определить порядок применения процедур сериали-зации, описать интерфейсы и т.д.
