RIGHT

Copier les caractères à partir de la droite

RIGHT copie, à partir de la droite, n caractères de la chaîne de caractères de la première variable d’entrée vers la variable de sortie. La deuxième variable d’entrée définit le nombre de caractères n copiés.

Paramètres

Entrée

IN (STRING)

1e entrée : chaîne de caractères d’entrée

L (INT)

2e entrée : nombre de caractères de la chaîne de caractères d’entrée qui sont copiés, à partir de la droite

Sortie

Unnamed output (STRING)

Chaîne de caractères copiés

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 le nombre de caractères devant être copié est supérieur au nombre de caractères de la chaîne de caractères d’entrée, l’ensemble de la chaîne de caractères sera copié vers la variable de sortie.

  • Si la chaîne de caractères de sortie est d’une longueur supérieure à celle définie pour la variable de sortie dans la zone “Type”, seul le nombre de caractères pouvant être contenu dans la variable de sortie sera copié. La variable système sys_bIsCarry est activée.

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.

sys_bIsCarry (passe à TRUE pendant un cycle)

Si la chaîne de caractères de sortie est d’une longueur supérieure à celle définie pour la variable de sortie dans la zone "Type"

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
		sInput: STRING[15]:='abcd efg hijk';
			(*sample string*)
		iChar_number: INT:=4;
			(*characters to be delivered*)
		sResult: STRING[4]:='';
			(*result here= 'hijk'*)
	END_VAR

Dans cet exemple, les variables d’entrée sInput et iChar_number ont été déclarées. Vous pouvez également entrer la chaîne de caractères ('abcd efg hijk') et le nombre de caractères devant être copiés directement dans la fonction. La chaîne de caractères doit être entrée entre guillemets, à la fois dans l’en-tête du POU et dans la fonction.

Corps du POU

iChar_number (4) désigne le nombre de caractères de sInput ('abcd efg hijk’) qui sont copiés à partir de la droite en sortie sResult ('hijk’).

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 := 5 ;
        NETWORK_BODY
B(B_F,RIGHT!,Instance,10,0,15,4,,?DIN?DL?C);
B(B_VARIN,,sInput,8,1,10,3,);
B(B_VARIN,,iChar_number,8,2,10,4,);
B(B_VAROUT,,sResult,15,1,17,3,);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

sResult:=RIGHT(IN := sInput, L := iChar_number);

Corps en IL

LD

sInput

RIGHT

iChar_number

ST

sResult

Modifié le : 2022-06-28Feedback on this pagePanasonic hotline