Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Probleme beim Arbeiten mit XML und Double-Werten

  Alt 9. Apr 2021, 10:02
Das "Problem" hier ist, dass es einige Teile im Delphi gibt (wie z.B. die Konvertierung von Variant in den XMLString, aber das Andersrum fehlt) und dahnter eine Fremdkomponente von Microsoft sich versteckt, bzw. "Eine" ist es garnicht, da dort unterschiedliche Libraries und Versionen gekapselt sein können (z.B. MS-XML, OmniXML usw.), welche teilweise sich auch im Verhalten unterscheiden.

https://www.delphipraxis.net/20455-a...zum-msxml.html


Und ja, es gibt auch andere XMLLibs. (SuFu)
Die z.B. komplett in Pascal geschrieben sind und dann auf beiden Seiten gleich arbeiten können.
Achtung, wenn sie ebenfalls Variant einsetzen, dann gibt es da die gleichen Probleme. Aber mit Funktionen/Erweiterungen ala AsFloat geht es.
Es gibt auch Libs, welche die Sprache nicht beachten, also im deutschen Windows 3,14 speichern, anstatt 3.14 , was "jetzt" erstmal super funktioniert, welches dann aber knallt, wenn diese XML in einem anderssprachigem Windows geladen/gespeichert wird.

Ohne zusätzlich, z.B. als Attribut, in der XML zu speichern, dass dieses ein "Float" ist, dann ist eine automatische Behandlung/Konvertierung (Variant und Co.) garnicht möglich,
außer man gibt eben programmseitig das Verhalten vor (AsFloat).
Eine Heuristik, zum erkennen der "." und ",", also ob es nun ein Dezimalpunkt oder ein Tausenderpunkt ist, ist auch nicht zielführend, denn ist 3.142 nun Pi oder doch eine 3000?


Es gibt auch XML-Object-Mapping-Komponenten, welche die Typen richtig beachten.
$2B or not $2B

Geändert von himitsu ( 9. Apr 2021 um 10:06 Uhr)
  Mit Zitat antworten Zitat