Verwenden Sie die Vergleichsfunktionen zum Vergleichen von numerischen Werten, Strings, booleschen Werten, Arrays und Clustern. Die Mehrzahl der Vergleichsfunktionen überprüft eine Eingabe oder vergleicht zwei Eingaben und gibt einen booleschen Wert aus.

Vergleichen von Werten

Bei den meisten Vergleichsfunktionen wird ein Eingangswert geprüft, oder es werden zwei Eingangswerte verglichen und anschließend wird ein boolescher Wert ausgegeben. Zahlenwerte werden vor dem Vergleich in eine einheitliche Darstellung umgewandelt. Die Funktionen wandeln jeden Eingangswert in die größte Darstellung um, die für einen genauen Vergleich benötigt wird. Wenn an einem oder beiden Eingängen der Vergleichsfunktion Keine Zahl (NaN) anliegt, wird ein Wert ausgegeben, der Ungleichheit anzeigt.

Nicht alle reellen Zahlen können mit Hilfe des ANSI/IEEE-Standards für Fließkommazahlen dargestellt werden. Daher können Vergleiche mit Fließkommawerten auf Grund von Rundungsfehlern zu unerwarteten Ergebnissen führen.

Vergleichen von Strings

Mit Vergleichsfunktionen werden Strings auf Übereinstimmung mit den Werten in ASCII-Zeichen-Codes überprüft. Die Strings werden dabei beginnend mit dem nullten Element bis zum Auffinden einer Ungleichheit oder bis zum Ende des Strings überprüft. Für die Funktionen ist der längere String größer als der kürzere String.

Demnach ist a (mit einem Dezimalwert von 97) größer als A (65), was wiederum größer als 0 (48) ist, was wiederum größer als das Leerzeichen (32) ist. Der Vergleich erfolgt zeichenweise beginnend am Anfang des Strings, bis eine Ungleichheit auftritt. An diesem Punkt endet der Vergleich. LabVIEW vergleicht beispielsweise die Strings abcd und abef, bis ein Wert c gefunden wird, der kleiner als e ist. Das Vorhandensein eines Zeichens wird als größer als die Abwesenheit eines Zeichens interpretiert. Der String abcd ist also größer als abc.

Die Funktionen, mit denen die Kategorie eines String-Zeichens überprüft wird (beispielsweise die Funktionen Dezimalziffer? und Druckbar?), werten nur das erste Zeichen eines Strings aus.

Vergleichen von booleschen Werten

Für die Vergleichsfunktionen ist der boolesche Wert TRUE größer als der boolesche Wert FALSE.

Vergleichen von Arrays und Clustern

Einige Vergleichs-Funktionen verfügen über zwei Modi, um Arrays oder Cluster mit Daten zu vergleichen. Beim Vergleich zweier Arrays oder Cluster im Modus "Elementsätze vergleichen" gibt die Funktion einen einzelnen booleschen Wert aus. Im Modus “Elemente vergleichen” werden die Elemente einzeln miteinander verglichen, und es wird ein Array oder ein Cluster mit booleschen Werten ausgegeben.

Im Modus "Elementsätze vergleichen" folgen die String- und Array-Vergleichsoperationen demselben Verfahren – der String wird als Array von ASCII-Zeichen betrachtet.

Hinweis Die Funktion Max & Min unterscheidet sich von anderen Vergleichsfunktionen. Die Funktion gibt je nach festgelegten Einstellungen für Modus und Ausgabe entweder das größte Element/Array oder das kleinste Element/Array aus.

Um die Betriebsart der Funktion zu verändern, klicken Sie diese mit der rechten Maustaste an und wählen Sie aus dem Kontextmenü die Option Vergleichsmodus»Elemente vergleichen oder Vergleichsmodus»Elementsätze vergleichen. Einige Vergleichsfunktionen arbeiten nur im Modus "Elementsätze vergleichen", so dass im Kontextmenü keine entsprechenden Optionen angezeigt werden.

Arrays

Beim Vergleichen von mehrdimensionalen Arrays müssen alle in die Funktion eingegebenen Arrays dieselbe Dimension besitzen. Bei Vergleichsfunktionen, die nur über den Modus "Elementsätze vergleichen" verfügen, werden Arrays in derselben Weise wie Strings verglichen: Mit dem ersten Element beginnend wird so lange ein Element nach dem anderen verglichen, bis eine Ungleichheit auftritt.

Modus "Elemente vergleichen"

Im Modus "Elemente vergleichen" wird von den Vergleichsfunktionen ein Array mit booleschen Werten ausgegeben, das genauso viele Dimensionen wie das Eingangs-Array hat. Jede Dimension des Ausgangs-Arrays stellt die Größe des kleineren der beiden Eingangs-Arrays in der jeweiligen Dimension dar. Bei jeder Dimension (Zeile, Spalte oder Seite) vergleichen die Funktionen die entsprechenden Elementwerte in allen Eingangs-Arrays, um den entsprechenden booleschen Wert im Ausgangs-Array zu erzeugen.

Modus "Elementsätze vergleichen"

Im Modus "Elementsätze vergleichen" geben die Funktionen nach dem Vergleich der Elemente eines Arrays immer einen einzelnen booleschen Wert aus. Vergleichsfunktionen vergleichen Elemente nacheinander, bis ein Unterschied erkannt wird. Dieser Vorgang gleicht dem alphabetischen Sortieren von Wörtern, wo die einzelnen Buchstaben jedes Worts miteinander verglichen werden, bis ein Unterschied auftritt. Die Funktionen gehen daher beim Vergleich folgendermaßen vor:

  • Die Funktion vergleicht zugehörige Elemente in jedem Eingangs-Array, beginnend am Anfang des Arrays.
  • Wenn die entsprechenden Elemente nicht übereinstimmen, hält die Funktion an und gibt das Ergebnis des Vergleichs aus.
  • Stimmen die entsprechenden Elemente überein, wird das nächste Wertepaar verarbeitet, bis eine Ungleichheit festgestellt oder das Ende eines Eingangs-Arrays erreicht wird.
  • Wenn alle Werte in den Eingangs-Arrays übereinstimmen, ein Array jedoch am Ende weitere Elemente hat, wird das längere Array als größer angesehen als das kürzere Array. So wird das Array [1,2,3,2] beispielsweise als größer erachtet als das Array [1,2,3].
Hinweis Die Funktion Wertebereich prüfen und erzwingen verhält sich im Modus "Elementsätze vergleichen" anders als andere Vergleichsfunktionen, da die Funktion drei Eingänge erfordert. Nach dem Vergleich des ersten Satzes von Elementen wird der nächste Satz von Elementen nur verarbeitet, wenn alle drei Eingänge (Obergrenze, Untergrenze und x) verbunden sind. Anderenfalls gibt die Funktion das Ergebnis des Vergleichs des ersten Satzes von Elementen aus.

Cluster

Für einen Vergleich zweier Cluster müssen drei Bedingungen erfüllt sein: Die Cluster müssen gleich viele Elemente enthalten, die Typen der einzelnen Elemente müssen zueinander kompatibel sein und die Elemente müssen die gleiche Reihenfolge aufweisen. Ein Cluster mit Daten vom Typ "DBL" und einem String kann beispielsweise mit einem Cluster mit Daten vom Typ "I32" und einem String verglichen werden.

Modus "Elemente vergleichen"

Im Modus "Elemente vergleichen" wird von den Vergleichsfunktionen ein Cluster mit booleschen Werten ausgegeben, wobei jedes Cluster-Element den dazugehörigen Elementen im Eingangs-Cluster entspricht.

Modus "Elementsätze vergleichen"

Im Modus "Elementsätze vergleichen" geben die Funktionen nach dem Vergleich der Elemente eines Clusters immer einen einzelnen booleschen Wert aus. Vergleichsfunktionen vergleichen Elemente nacheinander, bis ein Unterschied erkannt wird. Dieser Vorgang gleicht dem alphabetischen Sortieren von Wörtern, wo die einzelnen Buchstaben jedes Worts miteinander verglichen werden, bis ein Unterschied auftritt. Die Funktionen gehen daher beim Vergleich folgendermaßen vor:

  • Die Funktion vergleicht zugehörige Elemente in jedem Eingangs-Cluster, beginnend am Anfang des Clusters.
  • Wenn die entsprechenden Elemente nicht übereinstimmen, hält die Funktion an und gibt das Ergebnis des Vergleichs aus.
  • Stimmen die entsprechenden Elemente überein, wird das nächste Wertepaar verarbeitet, bis eine Ungleichheit festgestellt oder das Ende der Eingangs-Cluster erreicht wird.
  • Wenn alle Werte in den Eingangs-Clustern übereinstimmen, ein Cluster jedoch am Ende weitere Elemente hat, wird der längere Cluster als größer angesehen als der kürzere Cluster. So wird der Cluster [1,2,3,2] beispielsweise als größer erachtet als der Cluster [1,2,3].
Hinweis Die Funktion Wertebereich prüfen und erzwingen verhält sich im Modus "Elementsätze vergleichen" anders als andere Vergleichsfunktionen, da die Funktion drei Eingänge erfordert. Nach dem Vergleich des ersten Satzes von Elementen wird der nächste Satz von Elementen nur verarbeitet, wenn alle drei Eingänge (Obergrenze, Untergrenze und x) verbunden sind. Anderenfalls gibt die Funktion das Ergebnis des Vergleichs des ersten Satzes von Elementen aus.

Mit dem Modus "Elementsätze vergleichen" können Datensätze mit sortierten Daten verglichen werden. Später im Cluster auftretende Elemente werden dabei als untergeordnete Elemente der früher im Cluster vorkommenden Elemente betrachtet. In einem Cluster mit zwei Strings, Nachname gefolgt von Vorname, werden die Felder für die Vornamen beispielsweise nur dann verglichen, wenn die Felder für die Nachnamen übereinstimmen.

Vergleichen von Referenzen

LabVIEW vergleicht VI-Server-Referenzen mit Hilfe der Funktionen Gleich? und Ungleich?. Sie können mit Hilfe dieser Vergleichsfunktionen ein Array oder Cluster eines bestimmten Datentyps mit einem Skalar des gleichen Datentyps vergleichen und ein Array oder Cluster mit booleschen Werten erstellen. Beim Vergleich von VI-Server-Referenzen gibt die Funktion TRUE oder FALSE aus, wenn sich die zwei Referenzen auf dasselbe Objekt beziehen, unabhängig davon, ob die Referenzen dieselben Merkmale oder denselben Wert aufweisen. Da sich mehrere Referenzen auf dasselbe Objekt beziehen können, kann der Integer-Wert der Referenz anders sein, sich aber dennoch auf dasselbe Objekt beziehen. Die Merkmale von zwei Referenzen können sich unterscheiden, selbst dann, wenn sich beide auf dasselbe Objekt beziehen. Wenn zum Beispiel eine der Referenzen authentifiziert ist und die andere nicht, dann hätten die Referenzen unterschiedliche Merkmale, würden sich jedoch immer noch auf dasselbe Objekt beziehen.

Eine Referenz kann zum Beispiel eine strikte Referenz auf ein digitales Zahleneingabe-Element sein und die andere eine allgemeine Referenz. Wenn sie aber für dasselbe Objekt stehen, werden sie als gleich betrachtet. Wenn zwei Referenzen auf dasselbe Objekt verweisen und eine authentifiziert werden muss und die andere nicht, wird trotzdem TRUE ausgegeben. Wenn sich allerdings eine lokale Referenz und eine Netzwerkreferenz auf dasselbe LabVIEW-Objekt beziehen, gibt die Funktion "Gleich?" FALSE aus.

Vergleichen von Variantdaten

Beim Vergleich von Variantdaten müssen Datentyp, Werte, Attributbezeichnungen und Attributwerte übereinstimmen, damit diese als gleich erkannt werden.