![]() |
himXML speichern mit BOM
Hallöle...8-)
Mein XML (Encoding: UTF-8) soll mal ein BOM bekommen...
Delphi-Quellcode:
In den Options ist "xoDontWriteBOM" nicht angegeben. (Standard) Die Datei hat aber kein BOM. :?
XML.SaveToFile(Name)
Header der gespeicherten Datei:
Code:
himXML.pas:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<Messages> <Message>
Delphi-Quellcode:
Procedure TXWriter.WriteBOM(AllowUTF8BOM: Boolean = False);
Begin If (XMLEncodingData[_Encoding].BOM > '') and (xoDontWriteBOM in _Options) and ((_Encoding <> xeUTF8) or AllowUTF8BOM) Then Begin Flush; _Stream.WriteBuffer(XMLEncodingData[_Encoding].BOM[1], Length(XMLEncodingData[_Encoding].BOM)); End; End;
Delphi-Quellcode:
damit kann er nie den BOM schreiben? Oder? :gruebel:
and (xoDontWriteBOM in _Options)
Was muß ich einstellen? Danke... |
AW: himXML speichern mit BOM
Also vom Ablauf her müsste an dieser Stelle die Option mit "xoWriteBOM" benannt werden.
Das ist auch kürzer und für den menschlichen Verstand einfacher zu erfassen als negierte Aussagen. Wenn man die Optionen ändert, müssten natürlich alle Stellen geprüft werden, die davon abhängen. Insbesondere auch die Vorbelegung der Option. Ich würde in der Methode mit einer Zwischenvariable arbeiten, was übersichtlicher ist:
Delphi-Quellcode:
if (xoWriteBOM in _Options) and (_Encoding <> xeUTF8) or AllowUTF8BOM) then
begin sBuffer := XMLEncodingData[_Encoding].BOM; if Length(sBuffer) > 0 then _Stream.WriteBuffer(sBuffer[1], Length(sBuffer)); end; |
AW: himXML speichern mit BOM
Ja ich würde auch sagen, dass da noch ein not davor hin gehört. Also:
Delphi-Quellcode:
Procedure TXWriter.WriteBOM(AllowUTF8BOM: Boolean = False);
Begin If (XMLEncodingData[_Encoding].BOM > '') and not (xoDontWriteBOM in _Options) and ((_Encoding <> xeUTF8) or AllowUTF8BOM) Then Begin Flush; _Stream.WriteBuffer(XMLEncodingData[_Encoding].BOM[1], Length(XMLEncodingData[_Encoding].BOM)); End; End; |
AW: himXML speichern mit BOM
Danke...:wink:
Zitat:
An die procedure habe ich versucht Breakpoints zu setzen...egal was ich gemacht habe...immer X as wäre die procedure nie in Verwendung. Auch ins Projekt aufgenommen. :? :gruebel: Warten wir mal, was der Verursacher dazu meint...:zwinker: |
AW: himXML speichern mit BOM
Hallöle...:wink:
@himitsu: Ist dein Postfach voll? :wink: Keine Antwort auf meine PN? :wink: |
AW: himXML speichern mit BOM
joar :vernupft:
muß mir später mal in Ruhe ansehn. |
AW: himXML speichern mit BOM
Danke...8-)
|
AW: himXML speichern mit BOM
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöle...8-)
Änderungen: * BOM ist nun auch bei UTF8 Standard. * wenn BOM nicht benötigt:
Delphi-Quellcode:
Änderungen in himXML.pas ab Zeile 11817:
XML.Options := XML.Options + [xoDontWriteBOM];
...
Delphi-Quellcode:
PS: (AllowUTF8BOM: Boolean = False); wurde nie gesetzt...immer False. :zwinker:
Procedure TXWriter.WriteBOM;
Begin If (XMLEncodingData[_Encoding].BOM > '') and (not(xoDontWriteBOM in _Options)) Then Begin Flush; _Stream.WriteBuffer(XMLEncodingData[_Encoding].BOM[1], Length(XMLEncodingData[_Encoding].BOM)); End; End; ...bitteschön. :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz