Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   eigenes Object / Klasse in Stream einlesen (https://www.delphipraxis.net/178018-eigenes-object-klasse-stream-einlesen.html)

Sim_Star 11. Dez 2013 15:03

eigenes Object / Klasse in Stream einlesen
 
Hallo,

ich möchte gern mein eigenes Object zur Laufzeit in einen Stream einlesen und dann mittels ServerSocket verschicken.
Wie stell ich das an?

MfG Marco

Sir Rufo 11. Dez 2013 15:12

AW: eigenes Object / Klasse in Stream einlesen
 
Ein Objekt?

Dann bau dir in das Objekt Methoden, die daraus einen Stream machen bzw. daraus wieder die Werte auslesen.

Delphi-Quellcode:
TMyObject = class
  procedure SaveToStream( AStream : TStream );
  procedure LoadFromStream( AStream : TStream );
  class function CreateFromStream( AStream : TStream ) : TMyObject;
end;

class function TMyObject.CreateFromStream( AStream : TStream ) : TMyObject;
begin
  Result := TMyObject.Create;
  Result.LoadFromStream( AStream );
end;

himitsu 11. Dez 2013 18:53

AW: eigenes Object / Klasse in Stream einlesen
 
Alternativ ginge auch ein Nachfahre von TPersistent, welcher dann über TWriter und TWriter serialisiert würde.

Vorteil: Man hätte eine halbwegs dynamische Datenstruktur im Stream, welche ein bekanntes Datenformat besitzt und die ihren inneren Aufbau kennt.
So könnte man problemloser auf eine Veränderung des Aufbaus der eigenen Komponente ragieren.

PS: Die DFMs sind in dem Format gespeichert. Also oftmals zwar in der Text-Variante davon, aber zum Speichern/Laden wird die Binärvariante verwendet.



Natürlich könnte man auch noch andere Formate nutzen, wie z.B. JSON und XML.

QuickAndDirty 12. Dez 2013 11:17

AW: eigenes Object / Klasse in Stream einlesen
 
Zitat:

Zitat von Sim_Star (Beitrag 1239450)
Hallo,

ich möchte gern mein eigenes Object zur Laufzeit in einen Stream einlesen und dann mittels ServerSocket verschicken.
Wie stell ich das an?

MfG Marco

Das könnte helfen!
http://www.codeproject.com/Articles/...ctsplusinplusD

Da kannst du dir abschauen wie du ein Objekt in einen Json String umwandelst und umgekehrt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz