__gc Array speichern

Schau dir mal an was Serializierung bedeutet, dann weisst du auch wie man kompliziertetre Datenstrukturen in Dateien speichert und wieder einliest.

Gruß Daniel
 
->Das Problem ist, dass mein Programm neue Werte berechnet und diese in einer neuen Zeile des ListView-Elements einfügt. Jetzt sollen diese Werte aber beim nächsten Programmstart wieder verfügbar sein.

Theoretisch müsste ich ja "nur" das temp-Array speichern, dass den Inhalt enthält, aber über fstream funktioniert das irgendwie nicht.

Fehlermeldung ist
error C3608: sizeof kann nicht auf ein a __gc-Array angewendet werden



Code:
//Aktualisiert die Tabelle nach Berechnen
                 ListViewItem* item1 = new ListViewItem(SpielAnzeige.ToString(), 0);
                 item1->SubItems->Add(Spielwert.ToString());
                 item1->SubItems->Add(S"");
                 item1->SubItems->Add(Punkte_Spieler1.ToString());
                 item1->SubItems->Add(Punkte_Spieler2.ToString());
                 item1->SubItems->Add(Punkte_Spieler3.ToString());

//usw...
                 

                 ListViewItem*temp1[]= {item1};

                 listView1->Items->AddRange(temp1); 

                 //Datei, in die gespeichert wird benennen und Daten einlesen
				 ofstream Output ("Tabelle.bcu", ios::binary);
				 Output.write ((char*) &temp1 , sizeof (temp1));
				 //Datei schließen
				 Output.close();

Und zu Serialisierung, funktioniert das nicht irgendwie über XML ? Wenn, ja wollt ich das möglichst vermeiden.
 
Zuletzt bearbeitet:
euroStar hat gesagt.:
Code:
                 ListViewItem*temp1[]= {item1};

                 listView1->Items->AddRange(temp1); 

                 //Datei, in die gespeichert wird benennen und Daten einlesen
				 ofstream Output ("Tabelle.bcu", ios::binary);
				 Output.write ((char*) &temp1 , sizeof (temp1));
				 //Datei schließen
				 Output.close();

überleg dir nochmal was du hier machst. Du legst einen Pointer an temp1
und bei Output.write übergibst du als Parameter 1 einen Pointer auf einen Pointer (temp1). Die Funktion rechnet aber mit einem Pointer auf einen Text!
dann verwendest du sizeof auf einen pointer. Was dir nur die größe deines Pointer geben würde und nicht die des Inhaltes.


PS: schreib doch bitte dazu, dass du den .net Framework nutzt
 
Ähm ja, das geht logischerweise nicht. Aber jetzt steh ich voll auf dem Schlauch.
Ich könnte mir doch ein __gc Array erstellen und die einzelnen items da hineinspeichern,oder ? :confused:
 

Neue Beiträge

Zurück