ersetzt Zeichen in einer Zeichenkette
Mit REPLACE können Zeichen der Zeichenfolge am Eingang IN1 durch die Zeichenfolge am Eingang IN2 ersetzt werden. Die Zahl der Zeichen, d.h. die Länge L der zu ersetzenden Zeichenfolge, wird am Eingang L eingegeben. Die Position, an der die Ersetzung beginnen soll, wird am Eingang P eingegeben. Das Ergebnis wird in die Ausgangsvariable geschrieben.
Eingang
Eingangszeichenfolge
Ersatzzeichenfolge
Anzahl der zu ersetzenden Zeichen in der Eingangszeichenfolge
Startposition der zu ersetzenden Eingangszeichenfolge, wobei 1 das erste Zeichen der Zeichenfolge kennzeichnet.
Ausgang
Ergebniszeichenfolge
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 input_string_1 und input_string_2) im Feld Typ definiert sind, tritt ein Fehler auf (siehe ).
wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist
wenn eine am Eingang oder Ausgang angegebene Zeichenfolge eine ungültige Zeichenfolge ist
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
output_value: STRING[32]:='';
END_VAR
In diesem Beispiel werden Konstante direkt an die Eingänge der Funktion geschrieben. Stattdessen können Sie Variablen im POE-Kopf deklarieren. Die Zeichenfolge müssen im POE-Kopf oder an den Funktionseingängen in Apostrophen stehen. Hier wird ’c’ in der Zeichenfolge ’MrSpock’ mit ’o’ ersetzt; das Ergebnis ist ’MrSpook’.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_VARIN,,'MrSpock',6,1,8,3,);
B(B_VARIN,,'o',6,2,8,4,);
B(B_VARIN,,1,6,3,8,5,);
B(B_VARIN,,6,6,4,8,6,);
B(B_VAROUT,,output_value,14,1,16,3,);
B(B_F,REPLACE!,Instance,8,0,14,6,,?DIN1?DIN2?DL?DP?C);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY