Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi XML Datei erzeugen und auslesen - uses Problem (https://www.delphipraxis.net/91750-xml-datei-erzeugen-und-auslesen-uses-problem.html)

ImpCaligula 9. Mai 2007 11:17


XML Datei erzeugen und auslesen - uses Problem
 
Salü...

ich verwende Delphi 2005 und habe ein VCL Win32 erstellt. Und würde gerne eine XML Datei erstellen
und dann auslesen. Dazu habe ich ein "Buch" Bsp verwendet. Aber er moniert mir an, dass er den XMLSerializer
und den zweiten Serielizer nicht kennt, Was muss ich bei uses noch einbinden?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    cmd1: TButton;
    cmd2: TButton;
    procedure cmd2Click(Sender: TObject);
    procedure cmd1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
TMensch = class(TObject)
  public
    Alter: Byte;
    Name: String;
end;

var
  Form1: TForm1;

implementation


procedure TForm1.cmd1Click(Sender: TObject);
var
  Mensch: TMensch;
  Ser: XmlSerializer;
  Writer: StreamWriter;
begin
Mensch := TMensch.Create;
  Mensch.Alter := 15;
  Mensch.Name := 'fido';

  Writer := StreamWriter.Create('Mensch.xml');
  Ser := XmlSerializer.Create(typeof(TMensch));
  Ser.Serialize(Writer, Mensch);
  Writer.Close;
end;

procedure TForm1.cmd2Click(Sender: TObject);
var
  Mensch: TMensch;
  Ser: XmlSerializer;
  Reader: StreamReader;
begin
Reader := StreamReader.Create('Mensch.xml');
  Ser := XmlSerializer.Create(typeof(TMensch));
  Mensch := Ser.Deserialize(Reader) as TMensch;
  Reader.Close;

  showmessage(Mensch.Name + ' ist ' + IntToStr(Mensch.Alter + ' Jahre alt.'));
 
end;

end.

Diese zwei

Delphi-Quellcode:
  Ser: XmlSerializer;
  Writer: StreamWriter;
mosert er mir an :-/


Danke für Eure Hilfe.

kolbaschedder 9. Mai 2007 11:37

Re: XML Datei erzeugen und auslesen - uses Problem
 
So wie das aussieht, ist der XMLSerializer eine .Net-Klasse. Dafür müsstest du eine .Net-Anwendung erstellen.

MfG
Kolbi

ImpCaligula 9. Mai 2007 11:42

Re: XML Datei erzeugen und auslesen - uses Problem
 
Zitat:

Zitat von kolbaschedder
So wie das aussieht, ist der XMLSerializer eine .Net-Klasse. Dafür müsstest du eine .Net-Anwendung erstellen.

MfG
Kolbi

Habe ich sonst eine Möglichkeit das mit VCL Win32 zu machen?

Jelly 9. Mai 2007 11:48

Re: XML Datei erzeugen und auslesen - uses Problem
 
TXMDocument z.B.

zecke 9. Mai 2007 11:49

Re: XML Datei erzeugen und auslesen - uses Problem
 
:hi:

Zum Umgang mit XML habe ich mir im Forum mal ein Tutorial gefunden, das war ganz anschaulich und hat bei mir funktioniert. Schau mal nach XML und Tutorial, dann solltest fündig werden. [edit]Das Tutorial nutzte auch die von Jelly angesprochene TXMLDocument[/edit]

Ansonsten glaube ich wird das mit "Mensch.Name" nicht funktionieren, weil ich sowas in Erinnerung habe, dass Name 'reserviert', also nicht als Variablenamen nutzbar ist. Da bin ich mir allerdings nicht mehr ganz sicher :?

Jelly 9. Mai 2007 17:33

Re: XML Datei erzeugen und auslesen - uses Problem
 
Wenn du ein XSD Schema hast, so kannst Du dieses auch in Delphi importieren und über Klassen und Properties ganz bequem auf das XML Dokument zugreifen. Bequemer gehts wirklich nicht mehr. Wenn Du willst, such ich mal ein Beispiel raus und hängs hier rein.

ImpCaligula 10. Mai 2007 10:17

Re: XML Datei erzeugen und auslesen - uses Problem
 
Zitat:

Zitat von Jelly
TXMDocument z.B.

& an zecke.....

Ich habe danach gesucht und folgende Anleitung gefunden:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XMLDoc, XMLIntf;

type
  TForm1 = class(TForm)
    cmd1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure cmd1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
var
myFirstXML : IXMLDocument;

procedure TForm1.FormCreate(Sender: TObject);
begin
myFirstXML := newXMLDocument;
end;

procedure TForm1.cmd1Click(Sender: TObject);
begin
myFirstXML.LoadFromFile('test.xml');
end;

end.

Das habe ich 1:1 aus dieser "Hilfe" kopiert. Aber genau dies schlägt fehl:
Delphi-Quellcode:
procedure TForm1.cmd1Click(Sender: TObject);
begin
myFirstXML.LoadFromFile('test.xml');
end;

Was mache ich denn da falsch?

Udontknow 10. Mai 2007 10:22

Re: XML Datei erzeugen und auslesen - uses Problem
 
Was schlägt denn fehl? Bekommst du eine Fehlermeldung?

Cu,
Udontknow

ImpCaligula 10. Mai 2007 10:47

Re: XML Datei erzeugen und auslesen - uses Problem
 
Zitat:

Zitat von Udontknow
Was schlägt denn fehl? Bekommst du eine Fehlermeldung?

Cu,
Udontknow

Ja logisch, man sollte nat. schon sagen, welcher Fehler genau auftritt zur Analyse. mein Fehler *g*.
Daher gleich mal eine HC gemacht - und hier ist das Ergebnis:

http://img208.imageshack.us/img208/4...meldungbi0.jpg

Udontknow 10. Mai 2007 11:00

Re: XML Datei erzeugen und auslesen - uses Problem
 
EDomParseError: Das könnte bedeuten, das es eventuell kein gültiges XML ist, was du da in der Datei hast. Probiere mal eine, von der du weisst, daß das XML korrekt aufgebaut ist (z.B. ein als XML abgespeichertes Clientdataset-File).

Cu,
Udontknow


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.
Seite 1 von 2  1 2      

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