Как писать и читать из файла в Visual C ++ / CLI? - PullRequest
0 голосов
/ 02 апреля 2012

Я новый ученик CLI. Мой учитель публикует следующий код в качестве примера hwo, чтобы сохранить объект в файл и прочитать объект из файла. Я думаю, что я понимаю код. Теперь мой учитель также опубликовал вопрос о том, как сохранить массив объектов, а также прочитать массив объектов (тех же типов).

Q1. Как я могу узнать, сколько объектов в файле?

Q2. Какие команды я должен использовать для записи и чтения массива объектов?

Спасибо.

Player ^Joe = gcnew Player("Joe", "Human", "Thief", 10, 18, 9, 13, 10, 11);
Console::WriteLine("Original Joe");
Joe->Print();

FileStream ^plStream = File::Create((args->Length==1)?args[0]:"Player.dat");
BinaryFormatter ^f = gcnew BinaryFormatter();
f->Serialize(plStream, Joe);
plStream->Close();

plStream = File::OpenRead((args->Length==1)?args[0]:"Player.dat");
Player ^JoeClone = (Player^)f->Deserialize(plStream);
plStream->Close();

Console::WriteLine("\nCloned Joe");
JoeClone->Print();

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Для Q1, простой способ узнать, сколько Объектов в файле - это при записи файла, в первую очередь записать количество Объектов в массиве.

Записав это, вы можете сделать это в процессе чтения.Я дам вам код для этого.

0 голосов
/ 02 апреля 2012

Поместите ваши объекты в один из стандартных контейнеров (например, общий список) и сериализуйте / десериализуйте этот список.

Пример, приведенный в документации, показывает, как сделать это с помощью Hashtable вместо List, не должно быть слишком сложно адаптировать это: http://msdn.microsoft.com/en-us/library/c5sbs8z9.aspx

...