[gelöst] XML-Dokument in SynEdit einlesen

Rund um die LCL und andere Komponenten
Antworten
Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

[gelöst] XML-Dokument in SynEdit einlesen

Beitrag von Linkat »

Hallo,
mit Hilfe von TXMLDocument erzeuge ich aus einem TreeView ein XML-Dokument.
Nun möchte ich dieses XML-Dokument in einem SynEdit darstellen.

Bisher speichere ich das Dokument ab und lese das Dokument wieder ein.

Code: Alles auswählen

 
  WriteXML(XMLDoc,'c:\test.xml');
  SynEdit1.Lines.LoadFromFile('c:\test.xml');
 


Das geht bestimmt auch eleganter.
Wer hat einen Vorschlag, wie man das besser machen kann?

Ich benutze die Units "DOM" und "WriteXML".

Gruß, Linkat
Zuletzt geändert von Linkat am Di 5. Jul 2016, 10:26, insgesamt 1-mal geändert.
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

Warf
Beiträge: 1908
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: XML-Dokument in SynEdit einlesen

Beitrag von Warf »

Linkat hat geschrieben:Hallo,
mit Hilfe von TXMLDocument erzeuge ich aus einem TreeView ein XML-Dokument.
Nun möchte ich dieses XML-Dokument in einem SynEdit darstellen.

Bisher speichere ich das Dokument ab und lese das Dokument wieder ein.

Code: Alles auswählen

 
  WriteXML(XMLDoc,'c:\test.xml');
  SynEdit1.Lines.LoadFromFile('c:\test.xml');
 


Das geht bestimmt auch eleganter.
Wer hat einen Vorschlag, wie man das besser machen kann?

Ich benutze die Units "DOM" und "WriteXML".

Gruß, Linkat


Versuch mal:

Code: Alles auswählen

var ms: TMemoryStream;
...
ms := TMemoryStream.Create;
try
  XMLWrite(XMLDoc, ms);
  SynEdit1.Lines.LoadFromStream(ms);
finally
  ms.Free;
end;

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: XML-Dokument in SynEdit einlesen

Beitrag von Linkat »

Hallo Warf,
vielen Dank für den Tipp.
Werde es morgen testen und in mein Programm einbauen.

Gruß, Linkat
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

Linkat
Lazarusforum e. V.
Beiträge: 530
Registriert: So 10. Sep 2006, 23:24
OS, Lazarus, FPC: Linux Mint 21.3; Lazarus 3.0 FPC 3.2.2; RaspiOS
CPU-Target: AMD 64, ARM 32
Wohnort: nr Stuttgart

Re: XML-Dokument in SynEdit einlesen

Beitrag von Linkat »

So mit dem kleinen Zusatz ms.position funktioniert das Ganze.

Code: Alles auswählen

var ms   :TMemoryStream;
....
 
  ms:=TMemoryStream.Create;
  try
    WriteXMLFile(XMLDoc,ms);
    ms.Position:=0;
    SynEdit1.Lines.LoadFromStream(ms);
  finally
    ms.Free;
  end

Vielen Dank noch einmal.

Gruß, Linkat
Linux Mint 21; Lazarus 2.2.4 FPC 3.2.2; RaspiOS

Antworten