Einzelnen Beitrag anzeigen

Geri

Registriert seit: 23. Nov 2004
Ort: Feldkirch
47 Beiträge
 
Delphi 2005 Personal
 
#1

Referzen in ein Stream speichern

  Alt 14. Sep 2006, 20:03
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
Gerhard
  Mit Zitat antworten Zitat