' schrieb:Hallo,
ich krame dieses Thema nochmal raus weil es zu meinem Problem passt. Im Prinzip möchte ich auch Cluster abspeichern und laden. Die Cluster enthalten unterschiedlichste Typen von Elementen (String, Bool, Integer usw.). Die Werte sollen aber "offline" mit einem Editor bearbeitet werden können.
Leider bekomme ich den Typ des zu schreibenden Clusterelements nicht ermittelt. Dieser ist ja zur Benutzung von Schreib- und Lesefunktionen für Konfigurationsdateien notwendig. Hat jemand eine Idee wie aus dem Variant der Datentyp ermittelt werden kann? Ein Umwandeln nach serialisierten Daten funktioniert irgendwie nicht richtig. Im Anhang ist ein kleines Beispiel.
Grüße
Mathias
Einen Cluster kann man nicht direkt mit den Konfigurations-VI schreiben. Du solltest ihn besser aufteilen (unbundle) und die einzenlnen Werte mit dem Konfigurations-VIs speichern. Ist natürlich mühsam, wenn Du oftmals Cluster "mal eben" speichern möchtest.
Alternativ kannst Du mit "Variant to Flatten String.VI" Deinen Cluster analysiern. Die LabVIEW-Hilfe liefert eine ausführliche Beschreibung der Zahlen in dem "type string". Macht aber extrem viel Arbeit eine generelle Lösung zu finden, die mit allen möglichen Clustern arbeitet. Außerdem bieten die KonfigurationsVI nur zwei Ebenen zu Schachteln.
Für sehr verschachtelte Cluster bietet sich daher XML an.
Ich persönlich würde jedoch die folgende XML-Form (Cluster bis auf die Namen wie auf
http://LabVIEWportal.eu/viewtopic.php?f=51&t=145)
<?xml version='1.0'>
<LVData>
<Wettermeldung>
<Temperatur Type="SGL">32</Temperatur>
<zuWarm Type="Boolean">True</zuWarm>
<Kommentar Type="String">Wo ist der Pool?</Kommentar>
</Wettermeldung>
</LVData>
der Original-LabVIEW Version der XML-Struktur:
<?xml version='1.0' standalone='yes' ?>
<LVData xmlns="http://www.ni.com/LVData">
<Version>8.6.1f1</Version>
<Cluster>
<Name>Wettermeldung</Name>
<NumElts>3</NumElts>
<DBL>
<Name>Temperatur</Name>
<Val>32.00000000000000</Val>
</DBL>
<Boolean>
<Name>zu warm</Name>
<Val>1</Val>
</Boolean>
<String>
<Name>Kommentar</Name>
<Val>Wo ist der Pool?</Val>
</String>
</Cluster>
</LVData>
vorziehen. Ich finde die LV-Version ist deutlich unübersichtlicher, wenn man als Mensch versucht die Datei zu verstehen und vielleicht manuell editieren möchte.
Schöne Grüße