Entwickler-Ecke
Dateizugriff - XML - Wieso geht das nicht?
spoof - Mo 11.11.13 12:43
Titel: XML - Wieso geht das nicht?
Morgen, ich hab mich vor kurzem mit dem Speichern und auslesen der Registry und Ini Dateien beschäftigt. Das war soweit kein Problem, allerdings beschäftige ich mich nun mit XML un dort komme ich irgendwie nicht mit klar. Per google finde ich leider nur Tutorials die 10 Jahre alt sind,
http://www.delphi-treff.de/tutorials/datenspeicherung/xml-serialisierung-mit-delphi-net/objekte-serialisieren-und-deserialisieren/
ist das einzigste was mir vermitteln konnte wie XML funktioniert, allerdings habe ich Probleme damit den beispielcode funktionsfähig zu bekommen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64:
| unit Unit1;
interface
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private public end;
type TMensch = class(TObject) public Alter: Byte; Name: String; end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(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.Button2Click(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;
MessageBox.Show(Mensch.Name + ' ist ' + Mensch.Alter.ToString + ' Jahre alt.'); end;
end. |
Mir wird gesagt dass XmlSerializer und StreamReader undeklarierte bezeichner sind. Ich kenne die Variablenarten leider nichtmals, und konnte auch nichts richtiges finden, ich kann mir zwar denken was sie machen, streamreder ist ein stream der den Inhalt der XML ausliest und xmlserializer erkennt das XML Format (denk ich mal).
jaenicke - Mo 11.11.13 12:54
Delphi für .NET ist tot, deshalb kannst du auch mit den entsprechenden Tutorials nichts anfangen. An den Unitnamen sieht man, dass du ein aktuelles Delphi hast, das kann .NET nicht ohne Umwege ansprechen.
Für XML gibt es IXMLDocument aus der Unit Xml.XmlIntf:
http://docwiki.embarcadero.com/Libraries/XE5/de/Xml.XMLIntf
spoof - Mo 11.11.13 13:09
jaenicke hat folgendes geschrieben : |
Delphi für .NET ist tot, deshalb kannst du auch mit den entsprechenden Tutorials nichts anfangen. An den Unitnamen sieht man, dass du ein aktuelles Delphi hast, das kann .NET nicht ohne Umwege ansprechen.
Für XML gibt es IXMLDocument aus der Unit Xml.XmlIntf:
http://docwiki.embarcadero.com/Libraries/XE5/de/Xml.XMLIntf |
Ok danke dann werd ich mich mal mit IXMLDocument beschäftigen.
Lemmy - Mo 11.11.13 13:11
und wenn dich serialisieren/deserialisieren interessiert, dafür habe ich für die "alte" RTTI ein Tutorial geschrieben, das noch drauf wartet aktualisiert zu werden. Aber die neue RTTI ist in div. Blogeinträgen (Marco Cantu....) und Büchern schon sehr ausführlich erläutert...
Grüße
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!