Zeichenfolge suchen
FIND sucht in der ersten Eingangszeichenfolge nach der zweiten Eingangszeichenfolge und gibt die Position aus, an der die zweite Eingangszeichenfolge gefunden wurde. Das Ergebnis wird in die Ausgangsvariable geschrieben. Wenn die zweite Eingangszeichenfolge in der ersten Eingangszeichenfolge nicht vorkommt, wird der Wert 0 ausgegeben.
Eingang
Eingangszeichenfolge
zwischen Groß- und Kleinschreibung unterscheidende Zeichenfolge, nach der in der Eingangszeichenfolge gesucht wird
Ausgang
wenn Wert > 0: Position, an der die gesuchte Zeichenfolge herausgefunden wird, wobei sich 1 auf das erste Zeichen bezieht
wenn Wert = 0: Zeichenfolge nicht herausgefunden
Wenn Sie diesen Befehl mit UTF-8-Zeichenfolgen verwenden, beachten Sie die Hinweise zu UTF-8-Zeichenfolgen unter dem Datentyp STRING.
Wenn die Zeichenfolgen länger sind als die, die für die Länge der Eingangsvariablen (IN1 und IN2) im Feld “Typ” definiert sind, tritt ein Fehler auf (siehe sys_bIsCarry zur Fehlerauswertung).
wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist
wenn die Eingangszeichenfolgen länger sind als die für die Eingangsvariable im Feld “Typ” definierte Länge
wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist
wenn die Eingangszeichenfolgen länger sind als die für die Eingangsvariable im Feld “Typ” definierte Länge
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
sInputString: STRING[5]:='ABCBC';
(*sample string*)
sSearchString: STRING[2]:='BC';
(*searched string*)
iFoundPos: INT:=0;
(*1st position found*)
END_VAR
In diesem Beispiel wurden die Eingangsvariablen sInputString und sSearchString deklariert. Stattdessen können Sie die Zeichenfolgen ('ABCBC.' und 'BC') auch direkt an den Eingang der Funktion schreiben. Die Zeichenfolge müssen im POE-Kopf und in der Funktion in Apostrophen stehen.
Die Zeichenfolge sSearchString ('BC’) wird in sInputString ('ABCBC’) gesucht. Die Position des ersten Vorkommens (2) wird in iFoundPos geschrieben.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_VARIN,,sInputString,18,1,20,3,);
B(B_VARIN,,sSearchString,18,2,20,4,);
B(B_VAROUT,,iFoundPos,25,1,27,3,);
B(B_F,FIND!,,20,0,25,4,,?DIN1?DIN2?C);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
END_BODY
iFoundPos := FIND(sInputString, sSearchString);
LD |
sInputString |
FIND |
sSearchString |
ST |
iFoundPos |