2012-04-01 5 views
0

Ich bin ein neuer Lerner der CLI. Mein Lehrer gibt den folgenden Code als Beispiel für hwo ein, um ein Objekt in einer Datei zu speichern und ein Objekt aus der Datei zu lesen. Ich denke ich verstehe den Code. Nun stellt mein Lehrer auch eine Frage, wie man ein Array von Objekten speichert und auch ein Array von Objekten (gleiche Typen) liest.Wie in eine Datei in Visual C++/CLI geschrieben und gelesen werden?

Q1. Wie kann ich wissen, wie viele Objekte in der Datei?

Q2. Welche Befehle sollte ich verwenden, um ein Array von Objekten zu schreiben und zu lesen?

Danke.

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(); 

Antwort

1

Für Q1, eine einfache Möglichkeit, zu wissen, wie viele Objekte in der Datei ist, wenn die Datei zu schreiben, haben das erste, was die Anzahl der Objekte in dem Array geschrieben werden.

Wenn Sie das notiert haben, können Sie es im Leseprozess durchlaufen lassen. Ich lasse dir einen Code dafür einfallen.

0

Sie können Objekte in einen der Standardcontainer (z. B. eine allgemeine Liste) einfügen und diese Liste serialisieren/deserialisieren.

Das Beispiel, in der Dokumentation Ihnen zeigt, wie diese statt einer Liste mit einem Hashtable zu tun, sollte nicht allzu schwer sein, dies zu adaptieren: http://msdn.microsoft.com/en-us/library/c5sbs8z9.aspx

Verwandte Themen