Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Object in XML Speichern (https://www.delphipraxis.net/72552-object-xml-speichern.html)

Martin W 2. Jul 2006 20:09


Object in XML Speichern
 
Hi an alle :-)


Delphi-Quellcode:
type
  TServerProfile = class(TObject)
    FName    : string;
    FPassword : string;
  end;

  TSingleServer = class(TObject)
    FName    : string;
    FHost    : string;
    FPort    : integer;
    FPassword : string;
    FComment : string;
    FProfiles : array of TServerProfile;
  end;

  TServerList = class(TObject)
    FServers : array of TSingleServer;
  end;

var
  Servers: TServerList;
Wie kann ich das ganze sinnvoll speichern und wieder laden ? In .net geht es mit Hilfe von ner XML Serialisiserung... wie geht es unter Win32 ???

Gibt es unter Win32 vergleichbares??


Gruß
Martin

[edit=Admin]Beitrag auf Wunsch des Autors editiert. Mfg, Daniel[/edit]

arbu man 2. Jul 2006 20:12

Re: Object in XML Speichern
 
Du könntest da was mit Typeinfo machen wie man die propertys auflistet wird hier beschrieben

Martin W 2. Jul 2006 20:39

Re: Object in XML Speichern
 
Was .net ähnlich gibt es net?? Da waren es 4 Zeilen Code die ich brauchte...

Khabarakh 2. Jul 2006 20:45

Re: Object in XML Speichern
 
Es geht weder so einfach noch so schön, aber es geht.
  • Leite alle zu serialisierenden Klassen von TComponent ab.
  • Füge für alle zu serialiserenden Felder published Properties ein (*schüttel*).
  • Deine Arrays musst du dafür AFAIK mit TCollections ersetzen.
  • Read/WriteComponentRes oder TStream.Read/WriteComponent

@arbu man: Wäre eine Möglichkeit :stupid: ...

[edit]
Und XML ist es auch nicht.
[/edit]

Martin W 2. Jul 2006 21:10

Re: Object in XML Speichern
 
Aber was vergleichbares gibt es nicht??? :wiejetzt:


Kann ich eine DLL in .net schreiben und dann mit der Win32 Anwendung das Object übergeben?

Khabarakh 2. Jul 2006 21:19

Re: Object in XML Speichern
 
Soo schlecht ist doch die RTTI-Serialisierung auch wieder nicht :gruebel: .

Deine Idee ist allerdings zum Scheitern verurteilt. Selbst wenn du das Objekt über irgendwelche COM-Umwege in den managed Code bringen würdest, hättest du keinen Zugriff auf die Felder.

Martin W 2. Jul 2006 21:37

Re: Object in XML Speichern
 
Zitat:

* Leite alle zu serialisierenden Klassen von TComponent ab.
* Füge für alle zu serialiserenden Felder published Properties ein (*schüttel*).
* Deine Arrays musst du dafür AFAIK mit TCollections ersetzen.
* Read/WriteComponentRes oder TStream.Read/WriteComponent

Könnte mir einer dafür nen Beispiel geben? Also Source Code...

sh17 11. Jul 2006 11:59

Re: Object in XML Speichern
 
Ich würde eine Helper-Klasse mit 2 statischen Metoden bauen, die das übergebene Objekt in XML schreibt und wieder ausliest (in Datei, Stream, ...).

Khabarakh 11. Jul 2006 12:16

Re: Object in XML Speichern
 
Zitat:

Zitat von sh17
Ich würde eine Helper-Klasse mit 2 statischen Metoden bauen, die das übergebene Objekt in XML schreibt und wieder ausliest (in Datei, Stream, ...).

Nicht gerade das, was man unter einer generischen Lösung versteht...

@Martin W: Wo hakt es denn genau?
Wenn deine Klasse fertig ist, musst du im einfachsten Falle nur noch
Delphi-Quellcode:
WriteComponentRes(myObject, ...);
aufrufen.
Für die Collections kannst du dir auch mal die DP-Collection anschauen.

sh17 11. Jul 2006 12:23

Re: Object in XML Speichern
 
Zitat:

Zitat von Khabarakh
Nicht gerade das, was man unter einer generischen Lösung versteht...

dafür fexibel und eine Möglichkeit, wenn man nicht von TComponent erben kann. Zumal man XML wenigstens noch lesen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr.
Seite 1 von 2  1 2      

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