AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Prism Array of Object? Ich will Record-Daten serialisieren!
Thema durchsuchen
Ansicht
Themen-Optionen

Array of Object? Ich will Record-Daten serialisieren!

Offene Frage von "DSource"
Ein Thema von DSource · begonnen am 19. Sep 2005 · letzter Beitrag vom 20. Sep 2005
Antwort Antwort
DSource

Registriert seit: 6. Apr 2005
4 Beiträge
 
#1

Array of Object? Ich will Record-Daten serialisieren!

  Alt 19. Sep 2005, 22:54
Hallo,
ich komm seit 2 Tagen nicht auf die Lösung des Problems.

Es geht ums XML-Serialisieren (System.XML / System.XML.Serialization) unter .NET - aber wahrscheinlich kann mir hier prinzipiell auch jemand aus der Win32 Sparte helfen.

Mal ein bisschen Beispielquelltext:

Delphi-Quellcode:
type TPersonenDaten = class(System.Object)
  public
  name: string;
  alter: integer;
  telefon: string;
end;

type TPersonen = class(System.Object)
  public
  Person: array of TPersonenDaten;

(...)

s := XmlSerializer.Create(typeOf(TPersonenDaten));
Ziel des Ganzen soll sein, dass ich quasi ein serialisiertes XML-File bekomme, wo nacheinander
Code:
<person>
 <name>Mr.XY</name>
 <alter>99</alter>
 <telefon>123456789</telefon>
</person>
<person>
 <name>Ms.XY</name>
 <alter>101</alter>
 <telefon>12385734-12</telefon>
</person>
immer solche Datensätze vorkommen. Aber ich bekomme es beim besten Willen nicht gebacken, "I'm coding blind". Wenn mir jemand doch bitte mal schnell das Brett vorm Kopf wegnimmt? Das Problem ist, dass ich das Array irgendwie nicht richtig hinbekomme, so dass es serialisiert geschrieben werden kann. Ausserdem scheint es Probleme mit dem "array of object" aufbau zu geben; wenn ich da nämlich testeinträge hinzufügen will dann soll das immer eine nullreferenz sein. :(

Danke für eure Hilfe!

[edit=alcaeus]Code-Tags fuer XML-Code eingefuegt :) Mfg, alcaeus[/edit]
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: Array of Object? Ich will Record-Daten serialisieren!

  Alt 20. Sep 2005, 00:49
uff!

Öffentliche, kleingechriebene Felder? öffentliche Arrays? T-Prefixe?
Bist du sicher, dass du dich genügend mit .Net auskennst?

Mache aus PersonenDaten eine richtige Klasse und aus Personen eine typisierte Collection von Person.
Unter 1.1 (2.0 dürfte für Delphi wohl erst in 1 Jahr erscheinen...) lässt sich das mit viel Tipperei oder dem typed collection Wizzard aus #develop erledigen.

Ich habe mal eben eine Klasse Person und eine PersonCollection angelegt und durch den Serializer gescheucht.
Ist zwar kein Delphi sondern ein anderer Pascal dialekt, aber was da passiert sollte klar sein.
(Wenn es nicht klar ist, dürfte Serialisierung dein kleinstes Problem sein )
Delphi-Quellcode:
var Persons := new PersonCollection();

Persons.Add('Mr.XY', 99, '123456789');
Persons.Add('Ms.XY', 101, '12385734-12');
Persons.Add('Mr.30kg-Spatz', 1, 'Mööp');

var Serializer := new XmlSerializer(typeof(PersonCollection));

using Stream := new FileStream('Test.xml', FileMode.OpenOrCreate) do
   Serializer.Serialize(Stream, Persons);
Das hier kommt dabei raus:
XML-Code:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Person>
    <Name>Mr.XY</Name>
    <Alter>99</Alter>
    <Telefon>123456789</Telefon>
  </Person>
  <Person>
    <Name>Ms.XY</Name>
    <Alter>101</Alter>
    <Telefon>12385734-12</Telefon>
  </Person>
  <Person>
    <Name>Mr.30kg-Spatz</Name>
    <Alter>1</Alter>
    <Telefon>Mööp</Telefon>
  </Person>
</ArrayOfPerson>
  Mit Zitat antworten Zitat
DSource

Registriert seit: 6. Apr 2005
4 Beiträge
 
#3

Re: Array of Object? Ich will Record-Daten serialisieren!

  Alt 20. Sep 2005, 02:30
Habs inzwischen anders hinbekommen Trotzdem vielen Dank! Ich werde mir das bei Gelegenheit nochmal auf diese Weise anschauen.

(ASP).NET ist nicht so gut wenn man nebenbei eigentlich noch an normalen Win32 Projekten arbeiten muss. Naja, wie auch immer, eine andere wichtige Frage.

Ich kriege keinerlei Umlaute aus meinen XML Dateien raus. Also ä ü ö wird offensichtlich direkt ignoriert, ich bekomme dann beispielsweise "blken" statt "blöken". Hab schon ausprobiert, das Encoding zu ändern, scheint aber auch nicht so wirklich zu helfen ---- was muss ich tun?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 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