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.
Entrée
Nouvelle longueur de chaîne de caractères
Entrée/sortie
Chaîne de caractères ajustée selon la nouvelle longueur
Sortie
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
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 une chaîne de caractères en entrée ou sortie est invalide.
Si une chaîne de caractères en entrée ou sortie est invalide.
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
La fonction est exécutée lorsque la variable bStart est définie sur TRUE.
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
If (bStart) then
bError := SET_LEN(32, sTestSTring);
iStringLength := LEN(sTestString);
End_if;