![]() |
PropertyList - Verwalten von .plist Dateien
Für das Lesen, Bearbeiten und Speichern von
![]() ![]() Das hier
Delphi-Quellcode:
erzeugt dann so etwas
var
LPList: IPList; LDict : IPListDict; LData : TArray<Byte>; LIdx : Integer; begin LDict := TPList.CreateDict; LDict.AddOrSet( 'Array', TArray<TPlistValue>.Create( True, False, CFDate( Now( ) ), Random( 42 ), Random * 42 ) ); LDict.AddOrSet( 'Bool_True', True ); LDict.AddOrSet( 'Bool_False', False ); LDict.AddOrSet( 'Date', CFDate( Now( ) ) ); SetLength( LData, Random( 5 ) + 5 ); for LIdx := low( LData ) to high( LData ) do begin LData[ LIdx ] := Random( 256 ); end; LDict.AddOrSet( 'Data', LData ); LDict.AddOrSet( 'Integer', Random( 42 ) ); LDict.AddOrSet( 'Real', Random * 42 ); LDict.AddOrSet( 'String', 'foo' ); LPList := TPList.CreatePList; LPList.Root := LDict; LPList.SaveToFile( '.\foo.plist' ); end;
XML-Code:
Getestet mit Delphi 10 Seattle unter
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd" > <plist version="1.0"> <dict> <key>Integer</key> <integer>8</integer> <key>Data</key> <data>y2JTU/3t</data> <key>Array</key> <array> <true/> <false/> <date>2015-09-24T17:12:06.671+02:00</date> <integer>7</integer> <real>12.8174069174565</real> </array> <key>Bool_False</key> <false/> <key>String</key> <string>foo</string> <key>Bool_True</key> <true/> <key>Date</key> <date>2015-09-24T17:12:06.671+02:00</date> <key>Real</key> <real>1.60754230152816</real> </dict> </plist>
Ob die Binary-Variante noch kommt entscheide ich wenn ich die Unit-Tests fertig habe und es noch ein wenig aufpoliert habe. :stupid: Das Beispiel ![]() Aus
XML-Code:
wird dann ein
<string>YES</string>
XML-Code:
und aus
<true/>
XML-Code:
analog ein
<string>NO</string>
XML-Code:
.
<false/>
Folgende Bugs flogen mir bei der Entwicklung um die Ohren: |
AW: PropertyList - Verwalten von .plist Dateien
Wem diese beiden Lösungen nicht zusagen
![]() |
AW: PropertyList - Verwalten von .plist Dateien
Schönes Projekt, wieder einmal super gemacht. Meine einzige Frage wäre, warum Du auch XML.Win.msxmldom unter Windows aufnimmst, wenn doch eh alles konstant über ADOM4 läuft
Delphi-Quellcode:
. Falls Du wirklich verschiedene Vendors unterstützen willst z.b. den über die schöne globale DefaultDOMVendor eingestellte, müsstest Du auch deren "Besonderheiten" berücksichtigen.
GetDOM( sAdom4XmlVendor )
|
AW: PropertyList - Verwalten von .plist Dateien
Weil ich es ohne dieses Gefrickel - ja so ist das - bis jetzt nicht sauber hinbekommen habe eine XML-Datei mit DOCTYPE zu schreiben und wieder zu lesen.
Irgendetwas fliegt einem da immer wieder um die Ohren (unter Windows). Aber für Vorschläge wäre ich dankbar :) |
AW: PropertyList - Verwalten von .plist Dateien
Hast Du mal ein Beispiel für den DOCTYPE-Versuch?
|
AW: PropertyList - Verwalten von .plist Dateien
Zitat:
Ich werde wohl alt :mrgreen: Ich schaue mal, ob da in dem Projekt selber etwas klemmt ... danke aber für den Anstoss |
AW: PropertyList - Verwalten von .plist Dateien
Der ADOMV4
![]() |
AW: PropertyList - Verwalten von .plist Dateien
Zitat:
(Mal sehen wie das nach dem Fix von Emba ist) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:04 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