FIND

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.

Parameter

Eingang

IN1 (STRING)

Eingangszeichenfolge

IN2 (STRING)

zwischen Groß- und Kleinschreibung unterscheidende Zeichenfolge, nach der in der Eingangszeichenfolge gesucht wird

Ausgang

Unnamed output (INT)
  • 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

Anmerkungen

  • 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).

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • 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

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • 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

Beispiel

POE-Kopf

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.

POE-Rumpf

Die Zeichenfolge sSearchString ('BC’) wird in sInputString ('ABCBC’) gesucht. Die Position des ersten Vorkommens (2) wird in iFoundPos geschrieben.

KOP-Rumpf

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

ST-Rumpf

iFoundPos := FIND(sInputString, sSearchString);

AWL-Rumpf

LD

sInputString

FIND

sSearchString

ST

iFoundPos

Letzte Änderung am: 2022-04-19Feedback zu dieser SeitePanasonic Hotline