REPLACE

Remplacer les caractères

REPLACE remplace les caractères de la chaîne de caractères IN1 par les caractères de la chaîne de caractères IN2. P indique la position à partir de laquelle le remplacement commence et L indique le nombre de caractères qui doivent être remplacés. Le résultat est écrit dans la variable de sortie.

Paramètres

Entrée

IN1 (STRING)

Chaîne de caractères d’entrée

IN2 (STRING)

Chaîne de caractères de remplacement

L (INT)

Nombre de caractères dans la chaîne de caractères d’entrée, devant être remplacés

P (INT)

Position de départ de la chaîne de caractères d’entrée remplacée, 1 étant le premier caractère de la chaîne de caractères

Sortie

Unnamed output (STRING)

Chaîne de caractères résultante

Remarques

  • Si cette instruction est utilisée avec des chaînes de caractères en UTF-8, consultez les remarques concernant les chaînes de caractères en UTF-8 sous “STRING”.

  • Si les chaînes de caractères sont d’une longueur supérieure à celle définie pour les variables d’entrée input_string_1 et input_string_2 dans la zone Type, une erreur apparaît (voir Monitoring > Drapeaux et registres spéciaux > Messages d’erreur de base.

Drapeaux d’erreur

sys_bIsOperationErrorHold (passe à TRUE et reste TRUE)

Si une chaîne de caractères en entrée ou sortie est invalide.

sys_bIsOperationErrorNonHold (passe à TRUE pendant un cycle)

Si une chaîne de caractères en entrée ou sortie est invalide.

Exemple

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.

	VAR
		output_value: STRING[32]:='';
	END_VAR

Corps du POU

Dans cet exemple, les valeurs constantes sont entrées directement aux contacts d’entrée de la fonction. Cependant, vous pouvez également déclarer les variables dans l’en-tête du POU. Les chaînes de caractères doivent être entrées entre guillemets, soit dans l’en-tête du POU soit aux contacts d’entrée. Dans la chaîne de caractères 'MrSpock', le 'c' a été remplacé par un 'o', donnant 'MrSpook'.

Corps en LD

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

Corps en IL

Modifié le : 2024-03-25Commentaires sur cette pageAssistance téléphonique