LabVIEWForum.de
Cluster of Controls aus ini-Datei befeuern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO)
+---- Thema: Cluster of Controls aus ini-Datei befeuern (/Thread-Cluster-of-Controls-aus-ini-Datei-befeuern)



Cluster of Controls aus ini-Datei befeuern - DG1BGS - 31.01.2011 16:05

Hallo zusammen. Ich habe eine ini-Datei, in welcher in Abschnitten unterteilt u.a. GPIB-Adressen von Messgeräten festgelegt werden. Ich möchte nun folgendes erreichen:

Das vi mit dem Messprogramm besitzt diverse Cluster, dessen Namen den Abschnitten in der ini-Datei entsprechen. Die Namen der Controls entsprechen wiederum den Keys in der ini-Datei. Das vi liest nun in zwei verschachtelten for-Schleifen alle Keys und dazugehörigen Werte aus und soll diese (im Falle einer Übereinstimmung) an die Controls übergeben. Das Cluster soll übrigens nur Strings enthalten.

Zum besseren Verständnis im Anhang noch das Auslesen der ini-Datei. Bei der jetzigen Realisierung werden die Controls verständlicher Weise nur dann gesetzt, wenn sie sich NICHT in einem Cluster befinden.

Gruß, Stephan


Cluster of Controls aus ini-Datei befeuern - macmarvin - 31.01.2011 16:16

Hi,

an Elemente des Clusters kommst du über VI-Server dran, damit kannst du sie dann auch setzen.
Insgesamt würde ich mir's überlegen eher umgekehrt zu machen. Also ausgehend vom Cluster bzw. dessen Zerlegung in der Ini-Datei nach dem passenden Key suchen. Sowas findet man häufiger, glaub von OpenG/MGI gibt's sowas bzw. ich meine ich hätte sowas ähnliches auch schon hier im Forum gesehen.


Cluster of Controls aus ini-Datei befeuern - Lucki - 31.01.2011 22:57

Verstehe zwar weder auf die Schnelle dein VI, noch die darauf gegebene Antwort. Falls das Problem aber sein sollte, wie man ein beliebig komplexes Cluster in Textform in einer INI-File speichert und wieder zurückliest, so kann Dir geholfen werden. Ich mache das einfach so:

[attachment=32047]

Man kann allerdings den entstehenden langen String in der INI-Datei schlecht editieren. Wenn man das plant, dann ist die Abspeicherung des Clusters in seinen Einzelelementen natürlich vorzuziehen.


Cluster of Controls aus ini-Datei befeuern - macmarvin - 01.02.2011 08:56

' schrieb:Man kann allerdings den entstehenden langen String in der INI-Datei schlecht editieren. Wenn man das plant, dann ist die Abspeicherung des Clusters in seinen Einzelelementen natürlich vorzuziehen.
Wenn Binär dann lohnt sich ggf. anstatt Cluster eine LVclass zu nehmen. Das ist bei späteren Änderungen der Datenstruktur ohne grossen Zusatzaufwand bzw. komplett für umme.
Und Binärstring in Ini, da lohnt es sich noch eine Stringkonvertierung in nur druckbare Zeichen (z.B. base64) einzuschieben.


Cluster of Controls aus ini-Datei befeuern - GerdW - 01.02.2011 08:58

Hallo Stephan,

noch'ne Idee:
Daten zu XML konvertieren und als Textfile speichern. Bläht die Datei etwas auf, ist aber editierbarSmile


Cluster of Controls aus ini-Datei befeuern - DG1BGS - 01.02.2011 10:35

Hallo zusammen,
danke für die zahlreichen Antworten und guten Tipps zum Thema. Letztendlich habe ich den Tipp von macmarvin befolgt und mir die OpenG Lib nachinstalliert. Und siehe da, das vi "Read Section Cluster" lieferte genau das gewünschte Ergebnis (s. Anhang!).

Wenn die ini-Datei nicht schon fix vorgegeben gewesen wäre + die Vorgabe, dass die darin enthaltenen Daten dann zur weiteren Verarbeitung in einem Cluster landen, hätte man es natürlich auch anders lösen können. Also sicher nicht die optimalste Lösung, aber sie verrichtet ihren DienstWink

Viele Grüße, Stephan

PS: Wie kann ich denn das Thema als "gelöst" oder "beantwortet" markieren, ohne es ganz schließen zu müssen?


Cluster of Controls aus ini-Datei befeuern - macmarvin - 01.02.2011 11:50

Die VI-Ref-Öffnerei kannst du dir sparen. Das Ganze kann man natürlich auch noch weiter abstrahieren... muss man aber auch nicht :-)
[attachment=32052]


Cluster of Controls aus ini-Datei befeuern - Lucki - 02.02.2011 10:33

' schrieb:Die VI-Ref-Öffnerei kannst du dir sparen. Das Ganze kann man natürlich auch noch weiter abstrahieren... muss man aber auch nicht :-)
Ist nicht auch das noch umständlich? Warum nicht einfach den Cluster mit einer lokalen Variablen initialisieren?
[attachment=32069]
..und vielen Dank für den Hinweis auf die Open-G-INI-VIs. Die sind Gold wert.