Welche XML Config Unit ?

Rund um die LCL und andere Komponenten
Antworten
Mathias
Beiträge: 4847
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Welche XML Config Unit ?

Beitrag von Mathias »

Lazarus stellt mir 4 verschiedene Units zur Verfügung, welche XML als Config verwendet.
Laz_XMLCfg, Laz2_XMLCfg, XMLCfg, XMLConf
Welches ist die üblichste ?
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

mschnell
Beiträge: 3408
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Welche XML Config Unit ?

Beitrag von mschnell »

IMHO die wichtigeren Fragen:
Was sind die Unterschiede und wie kompatibel iond die ?
-Michael

wp_xyz
Beiträge: 3249
Registriert: Fr 8. Apr 2011, 09:01

Re: Welche XML Config Unit ?

Beitrag von wp_xyz »

  • XMLCfg enthält im Header die Notiz "This unit is deprecated because...".
  • XMLCfg und XMLConfig gehören zur FCL und arbeiten mit DOMString = XMLString = WideString.
  • Laz2_XMLCfg ist mehr oder weniger eine 1:1 Kopie von XMLCfg mit dem Unterschied dass DOMString = AnsiString ist.
  • Laz_XMLCfg enthält nur den Alias TXMLConfig für Laz2_XMLCfg.TXMLConfig - d.h. Laz_XMLCfg and Laz2_XMLCfg bieten dasselbe.
Ich würde in einem Standard-Lazarusprogramm also Laz2_XMLCfg verwenden, es sei denn, in der Datei stehen WideString, dann wäre XMLConfig die Unit der Wahl.

Und ich weiß nicht, warum wir so einen Überfluss an XML-Units haben müssen

mschnell
Beiträge: 3408
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Welche XML Config Unit ?

Beitrag von mschnell »

Es sollte nur eine Unit geben und die eine Property haben, welche String-Codierung verwendet werden soll.
Leider sind die Variable-Encoded Strings so dämlich (Delphi-kompatibel) implementiert, dass das vermutlich nicht so einfach ist.
-Michael

Socke
Lazarusforum e. V.
Beiträge: 2733
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Welche XML Config Unit ?

Beitrag von Socke »

Die Komponenten zum Speichern der Konfiguration basieren auf unterschiedlichen XML-Units, die unterschiedliche DOMStrings haben. Dort müsste man ansetzen vereinheitlichen. Dank Generics ist es relativ leicht möglich, die Implementierung zwischen 8 Byte und 16 Byte Strings zu teilen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 4847
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Welche XML Config Unit ?

Beitrag von Mathias »

Ich würde in einem Standard-Lazarusprogramm also Laz2_XMLCfg verwenden,
Dann habe ich ja die richtige gewählt. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Timm Thaler
Beiträge: 1042
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Welche XML Config Unit ?

Beitrag von Timm Thaler »

Für XML immer die laz2_Units, diese unterstützen Utf8 Unicode. Sonst holt man sich spätestens mit Umlauten und dem Wechsel zwischen Win und Linux den Ärger ins Programm.

https://wiki.lazarus.freepascal.org/XML_Tutorial

mschnell
Beiträge: 3408
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Welche XML Config Unit ?

Beitrag von mschnell »

Socke hat geschrieben:
Mi 24. Jun 2020, 13:10
Generics ist es relativ leicht möglich, die Implementierung zwischen 8 Byte und 16 Byte Strings zu teilen.
Eigentlich sind Code-Varianten Strings ja dafür gedacht, Generics zu vermeiden und Funktionen zu schrfeiben, die mit verschiedenen String-Codierung umgehen können; Bearbeiten in der optimalen Codierung, Landen und Abspeichern in der vorgegebenen Codierung, Bei Bedarf automatisch umcodieren. Aber wie gesagt: Embarcadero hat das vergeigt.
-Michael

Antworten