LabVIEWForum.de
Variant Datentyp automatisch erkennen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenkommunikation (/Forum-Datenkommunikation)
+---- Thema: Variant Datentyp automatisch erkennen (/Thread-Variant-Datentyp-automatisch-erkennen)



Variant Datentyp automatisch erkennen - GT123 - 08.12.2011 07:17

Hallo,
ich benötige eine Hilfestellung bezüglich den Datentyp Variant.
Und zwar möchte ich ein Vi erstellen in das man ein Array übergibt und die einzelnen Elemente bearbeiten kann und letztendlich das Array wieder mit den neuen Daten zurückgibt. Die Hürde liegt daran, den Datentyp am Eingang zu erkennen und dann ein String/Numeric Integer/ Double... Array darzustellen um dies zu bearbeiten und zurückzugeben. Wie löst man dies am besten? Vielen Dank.


RE: Variant Datentyp automatisch erkennen - unicorn - 08.12.2011 07:42

Eine alternative Idee ist es mit polymorphen VIs zu arbeiten. Eins für Strings, eins für Ints, ... Die sind allerdings nur in der Programmierumgebung verwendbar und machen im wesentlichen die Palettenansicht und BD-Ansicht durch ein einheitliches Erscheinungbild übersichtlicher.


Ansonsten nimmst Du das 'Variant to Flattened String' VI von der Variant-Palette. Hier kommt ein Type String heraus, der ein Integer-Array ist. Die Zahlen verraten Dir um welchen Datentyp es sich handelt. Details sind in der Hilfe zu finden. Mit einer Case-Anweisung kannst Du nun die verschiedenen Datentypen bearbeiten.

Etwas anspruchsvoller wird es, wenn Du auch Cluster verarbeiten willst. Jetzt ist Rekursion angesagt...


RE: Variant Datentyp automatisch erkennen - GT123 - 08.12.2011 11:32

Hallo,
da die Applikation später als build läuft muss ich die Variante mit dem Typendefinition des Flattened String wählen.

Die Interpretation des Arrays "type string" habe ich nicht verstanden also an welchem Element erkenne ich das es ein Array ist (40h) und mit der Representation String (?h)?
Als Beispiel habe ich das Flattened String to from Variant.vi und die Beschreibung "Type Descriptors" der LV-Hilfe verwendet.
Ein einfaches Beispiel wäre sehr sehr nett. Es ist ja doch recht komplex. Vielen Dank