F
Hallo Michael,
Erstmal Vielen Dank für deine Antwort.
Arrays hab ich so oder so benutzt das Problem lag ehr darin das ich zwar wusste wie ich die Daten abspeichern konnte aber nicht wie ich sie wieder lade.
denn
ar << daten.getIrgendwas(k); //OK
ar >> daten.getIrgendwas(k); //Fehler
//oder
ar >> daten.setIrgendwas(k); //Fehler
//oder
daten.setIrgendwas(ar); //Fehler
//usw.
Geht natürlich nicht. Leider sind wir im Studium von den Basics direkt auf MFC Programmierung gesprungen so, dass ich den Hintergrund dieser Speicher Funktion nicht versteheund das ist bei weitem nicht das einzige bei dem ich mich "das ist nunmal so" begnügen muss.
Mit Public Variablen wäre das ganz einfach gewesen, nicht das meine Lösung schwieriger wäre, weil ich diese ja direkt hätte zuweisen können.
Heute morgen gegen halb 4 also ich VS zugemacht habe und gerade ins Bett gehen wollte habe ich die Rettende Lösung gehabt, dass ich darauf nicht früher gekommen bin.
Für diejenigen die es interessiert:
Es handelt sich um ein Programm das Per Hand eingegebene Parameter (2 X/Y Koordinaten, Farbe, Strichstärke, Symbol und Beschreibung einließt)
Damit können dann über OnDraw 100 Rechtecke, Linien oder Ellipsen "gezeichnet" werden.
Hier meine Save/Load Lösung:
void CSE10Doc::Serialize(CArchive& ar)
{
int i;
int geti=daten.geti();
int x1[101],x2[101],y1[101],y2[101];
CString farbe[101],size[101],symbol[101];
CString getBeschreibung = daten.getBeschreibung();
for(i=1;i<=daten.geti();i++)
{
x1[i]=daten.getX1(i);
y1[i]=daten.getY1(i);
x2[i]=daten.getX2(i);
y2[i]=daten.getY2(i);
farbe[i]=daten.getColor(i);
size[i]=daten.getSize(i);
symbol[i]=daten.getSymbol(i);
}
if (ar.IsStoring())
{
// TODO: add storing code here
ar << geti;
ar << getBeschreibung;
for(i=1;i<=daten.geti();i++)
{
ar << x1[i];
ar << y1[i];
ar << x2[i];
ar << y2[i];
ar << farbe[i];
ar << size[i];
ar << symbol[i];
}
}
else
{
ar >> geti;
ar >>getBeschreibung;
for(i=1;i<=geti;i++)
{
ar >> x1[i];
ar >> y1[i];
ar >> x2[i];
ar >> y2[i];
ar >> farbe[i];
ar >> size[i];
ar >> symbol[i];
}
}
daten.seti(geti);
daten.editBeschreibung(getBeschreibung);
for(i=1;i<=daten.geti();i++)
{
daten.editParameter(size[i],symbol[i],farbe[i],i,x1[i],y1[i],x2[i],y2[i]);
}
}