Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#19

AW: Zahlenwerte in XML (Decimalseparator)

  Alt 16. Dez 2013, 16:20
Eben weil Delphi-Referenz durchsuchenIXMLNode.NodeValue ein Delphi-Referenz durchsuchenOleVariant ist, nehme ich das Lesen (!) und Schreiben lieber selber in die Hand. Denn dort kann ja eben alles stehen.

Also warum nicht so wie bei Delphi-Referenz durchsuchenTCustomIniFile
Delphi-Quellcode:
TNodeValueHandler = class
  private
    FFormat : TFormatSettings;
  public
    procedure WriteString( Node : IXMLNode; const Value : string );
    procedure WriteFloat( Node : IXMLNode; const Value : Extended );
    ...
    function ReadString( Node : IXMLNode; const Default : string ) : string;
    function ReadFloat( Node : IXMLNode; const Default : Extended ) : Extended;
    ...
   end;

procedure TNodeValueHandler.WriteString( Node : IXMLNode; const Value : string );
begin
  Node.NodeValue := Value;
end;

procedure TNodeValueHandler.WriteFloat( Node : IXMLNode; const Value : Extended );
begin
  WriteString( Node, FloatToStr( Value, FFormat ) );
end;

function TNodeValueHandler.ReadString( Node : IXMLNode; const Default : string ) : string;
begin
  Result := VarToStrDef( Node.NodeValue, Default );
end;

function TNodeValueHandler.ReadFloat( Node : IXMLNode; const Default : Extended ) : Extended;
begin
  Result := StrToFloatDef( ReadString( Node, '' ), Default );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat