KlassenKlassenKlassenKlassen | | | | Operatoren

String-Operationen

Liste der Operatoren ↓

Dieses Kapitel beschreibt Operatoren für String-Operationen.

Allgemeine Information

HALCON speichert und verarbeitet Strings intern als Bytefolgen. Im Allgemeinen kümmert es sich nicht um die Semantik der einzelnen Zeichen. Dies kann zu überraschenden Ergebnissen führen, insbesondere wenn Multi-Byte Zeichen benutzt werden, welche in den meisten nicht-ASCII Zeichen aus asiatischen Encoding Tabellen und in UTF-8 üblich sind.

Als ein Beispiel für unerwartete Ergebnisse betrachten wir den Operator tuple_strlentuple_strlenTupleStrlentuple_strlenTupleStrlenTupleStrlen. Auf den ersten Blick könnte man erwarten, dass die Länge eines Strings immer der Anzahl der enthaltenen Zeichen entspricht. Tatsächlich ist das aber nur für Single-Byte Zeichen der Fall. Enthält ein String Multi-Byte Zeichen, entspricht die Länge des Strings der Anzahl der genutzten Bytes und ist somit größer als die Anzahl der Zeichen. Ein anderes Beispiel ist der Operator tuple_ordstuple_ordsTupleOrdstuple_ordsTupleOrdsTupleOrds, welcher ein Tuple von Strings in einen Tupel von Integerzahlen konvertiert. Wenn er mit Multi-Byte Zeichen aufgerufen wird, gibt er ein Ausgabetuple zurück, das mehr Elemente enthält als Zeichen des Eingabetuples. Somit kann die Zuordung zwischen Eingabezeichen und Ausgabezahlen schwierig sein.

Die benutzte Zeichenkodierung (natives Encoding) hängt von der Ländereinstellung (Locale) des benutzten Betriebssytems ab. Ein paar übliche Encodings sind die Zeichenumsetztabellen windows-1252 (CP1252, West Europa) und windows-31j (CP932, Japan) für Windows und ISO 8859-1 (latin-1, West Europa), ISO 8859-15 (latin-9, West Europa), shift-jis (Japan) oder UTF-8 für andere Systeme. D.h., selbst mit der gleichen Ländereinstellung muss das Encoding berücksichtigt werden, wenn Daten zwischen z.B. Windows und Linux ausgetauscht werden sollen.

Sollen Daten zwischen Systemen mit unterschiedlichem Encoding ausgetasucht werden, kann eine Konvertierung nötig sein. Es ist üblicherweise sicher, 7-Bit ASCII Zeichen zwischen 32 - 127 zu verwenden, allerdings weisen manche Encodings ausgewählten Zeichencodes nationale Varianten zu. Daher können nur die folgenden Zeichen wirklich als sicher für den Datenaustausch angesehen werden:

   A-Z a-z 0-9 ! " % & ' ( ) * + , - . / : ; < = > ? 


Liste der Operatoren

tuple_environmentTupleEnvironmentTupleEnvironmenttuple_environmentTupleEnvironmenttuple_environment
Einlesen einer oder mehrerer Umgebungsvariablen.
tuple_regexp_matchTupleRegexpMatchTupleRegexpMatchtuple_regexp_matchTupleRegexpMatchtuple_regexp_match
Extrahieren von Teilen aus Zeichenketten mit Hilfe von regulären Ausdrücken.
tuple_regexp_replaceTupleRegexpReplaceTupleRegexpReplacetuple_regexp_replaceTupleRegexpReplacetuple_regexp_replace
Ersetzen eines Teils einer Zeichenkette mit Hilfe von regulären Ausdrücken.
tuple_regexp_selectTupleRegexpSelectTupleRegexpSelecttuple_regexp_selectTupleRegexpSelecttuple_regexp_select
Auswählen von Tupelelementen, die einem regulären Ausdruck entsprechen.
tuple_regexp_testTupleRegexpTestTupleRegexpTesttuple_regexp_testTupleRegexpTesttuple_regexp_test
Testen, ob eine Zeichenkette einem regulären Ausdruck entspricht.
tuple_splitTupleSplitTupleSplittuple_splitTupleSplittuple_split
Aufteilen von Strings in mehrere Strings mittels Trennsymbolen.
tuple_str_first_nTupleStrFirstNTupleStrFirstNtuple_str_first_nTupleStrFirstNtuple_str_first_n
Ausschneiden aller Zeichen bis zur Position „n“ aus einem Stringtupel.
tuple_str_last_nTupleStrLastNTupleStrLastNtuple_str_last_nTupleStrLastNtuple_str_last_n
Ausschneiden aller Zeichen ab der Position „n“ aus einem Stringtupel.
tuple_strchrTupleStrchrTupleStrchrtuple_strchrTupleStrchrtuple_strchr
Vorwärtssuchen nach einem Zeichen in einem Tupel von Strings.
tuple_strlenTupleStrlenTupleStrlentuple_strlenTupleStrlentuple_strlen
Berechnen der Länge der einzelnen Strings eines Stringtupels.
tuple_strrchrTupleStrrchrTupleStrrchrtuple_strrchrTupleStrrchrtuple_strrchr
Rückwärtssuchen nach einem Zeichen in einem Tupel von Strings.
tuple_strrstrTupleStrrstrTupleStrrstrtuple_strrstrTupleStrrstrtuple_strrstr
Rückwärtssuchen nach einem Teilstring in einem Tupel von Strings.
tuple_strstrTupleStrstrTupleStrstrtuple_strstrTupleStrstrtuple_strstr
Vorwärtssuchen nach einem Teilstring in einem Tupel von Strings.
tuple_substrTupleSubstrTupleSubstrtuple_substrTupleSubstrtuple_substr
Ausschneiden von Zeichen ab Position „n1“ bis einschließlich „n2“ aus einem Stringtupel.

KlassenKlassenKlassenKlassen | | | | Operatoren