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,
www.delphi-treff.de/...und-deserialisieren/
ist das einzigste was mir vermitteln konnte wie XML funktioniert, allerdings habe ich Probleme damit den beispielcode funktionsfähig zu bekommen:
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).