SET_LEN

Définir la longueur de la chaîne de caractères

Cette instruction définit une nouvelle longueur de chaîne de caractères en entrée LEN pour la chaîne de caractères en entrée STR. Si la nouvelle longueur est supérieure à la longueur maximale de la chaîne de caractères déclarée, une erreur apparaît et bError passe à TRUE. Si vous définissez une longueur de chaîne de caractères inférieure à la longueur actuelle, la chaîne de caractères sera tronquée selon la nouvelle longueur de chaîne de caractères.

Paramètres

Entrée

LEN (INT)

Nouvelle longueur de chaîne de caractères

Entrée/sortie

STR (STRING)

Chaîne de caractères ajustée selon la nouvelle longueur

Sortie

bError (BOOL)

TRUE lorsque la nouvelle longueur de chaîne de caractères est supérieure à la longueur maximale de la chaîne de caractères déclarée

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”.

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
		sTestString: STRING[128]:='A better life. A better world';
		iStringLength: INT:=0;
		bError: BOOL:=FALSE;
		bStart: BOOL:=FALSE;
	END_VAR

Corps du POU

La fonction est exécutée lorsque la variable bStart est définie sur TRUE.

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,E_SET_LEN!,,24,0,31,5,,?DEN?DLEN?DSTR?ASTR?AENO?CbError);
B(B_CONTACT,,bStart,5,1,7,3,);
B(B_VARIN,,sTestString,22,3,24,5,);
B(B_VAROUT,,bError,31,2,33,4,);
B(B_VARIN,,32,22,2,24,4,);
L(1,2,5,2);
L(7,2,24,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_VAROUT,,iStringLength,29,2,31,4,);
B(B_VARIN,,sTestString,21,2,23,4,);
B(B_F,LEN!,,24,1,29,4,,?DIN?C);
L(23,3,24,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

If (bStart) then
    bError := SET_LEN(32, sTestSTring);
    iStringLength := LEN(sTestString);
End_if;

Modifié le : 2022-06-28Commentaires sur cette pageAssistance téléphonique