Hallo zusammen
Ich habe wieder einmal eine Frage für die Expterten hier. Wie der Titel schon sagt, möchte ich Referenzen von Objekten in ein Stream speichern.
Geht das?
Falls ja, bitte wie?
Zum besseren Verständnis des Problems habe ich ein Programmgerüst der Objekte erstellt die gespeichert werden sollen.
TPoint ist ein Punkt mit zwei Koordinaten
TKante stellt die Verbingung zwischen zwei Punkten dar
Daraus entsteht schliessliche ein Netz oder ein Graph der gespeichert werden soll.
Delphi-Quellcode:
TPoint = Class
mx,my:Integer;
constructor Create(x1,y1:Integer);
Constructor Save(S:Stream);
Constructor Load(s:TStream);
End;
TKante = Class
mP1,mP2:TPoint;
constructor Create(P1,P2:TPoint);
Constructor Save(S:Stream);
Constructor Load(s:TStream);
End;
TGraph = class
PunkteListe:TList;
KantenList:TList;
constructor Create();
end;
constructor TPoint.create(x1,y1:Integer);
Begin
mx:=x1;
my:=y1;
End;
Constructor TPoint.Save(S:Stream);
Begin
s.Write(mx,sizeof(mx));
s.Write(my,sizeof(my));
End;
Constructor TPoint.Load(s:TStream);
Begin
s.read(mx,sizeof(mx));
s.read(my,sizeof(my));
End;
constructor TKante.create(P1,P2:TPoint);
Begin
mP1:=P1;
mP2:=P2;
End;
Constructor TKante.Save(S:Stream);
Begin
???
End;
Constructor TKante.Load(s:TStream);
Begin
???
End;
constructor TGraph.Create();
var P1,P2:TPoint;
K:TKante;
Begin
PunkteListe:=TList.Create;
// erzeuge 10 zufällige Punkte
for i:=0 TO 9 Do
Begin
P:=TPoint.create(Random(100),Random(100));
PunkteListe.Add(p);
End;
Erzeuge 4 zufällige Kanten
For j:=0 TO 4 Do
Begin
Kantenliste:=TKante.Create(l[Random(9)],L[Random(9));
End;
End;
constructor TGraph.LoadFromstream();
Begin
// lade Punkte ??
// lade Kanten ??
End;
Vielen Dank für Eure Tipps
Geri