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.