Establecer la longitud de una cadena
Esta instrucción configura la longitud de una cadena en la entrada STR a una nueva longitud definida en la entrada LEN. Si la nueva longitud supera la longitud máxima de la declaración de cadena, se produce un error y bError pasa a TRUE. Si se define una nueva longitud de cadena más corta que la actual, la cadena quedará truncada a la nueva longitud de cadena.
Entrada
Nueva longitud de cadena
Entrada/salida
Cadena ajustada a la nueva longitud
Salida
Ajustar a TRUE, si la nueva longitud de cadena supera la longitud máxima de la declaración de cadena
Si esta instrucción se utiliza con caracteres UTF-8, consultar las notas relativas a los caracteres UTF-8 en el tipo de datos STRING.
si una cadena aplicada en la entrada o la salida es una cadena no válida.
si una cadena aplicada en la entrada o la salida es una cadena no válida.
Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.
VAR
sTestString: STRING[128]:='A better life. A better world';
iStringLength: INT:=0;
bError: BOOL:=FALSE;
bStart: BOOL:=FALSE;
END_VAR
Cuando la variable bStart se encuentra a TRUE, se ejecuta la función.
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;