REPLACE

Reemplazar caracteres

REPLACE reemplaza los caracteres de la cadena IN1, donde P indica la primera posición a reemplazar y L el número de caracteres a reemplazar con los caracteres especificados por IN2. El resultado se guarda en la variable de salida.

Parámetros

Entrada

IN1 (STRING)

Primera cadena

IN2 (STRING)

Cadena que va a reemplazar los caracteres de la cadena de entrada

L (INT)

Número de caracteres a reemplazar en la cadena de entrada

P (INT)

Posición inicial de la cadena de entrada que se va a reemplazar, donde 1 es el primer carácter de la cadena

Salida

Unnamed output (STRING)

Resultado

Observaciones

  • 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 las cadenas son más largas que la longitud definida para las variables de entrada (input_string_1 y input_string_2) en el campo Tipo, se genera un error (consultar Monitorizar > Relés y Registros Especiales > Mensajes Básicos de Error).

Banderas de error

sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)

si una cadena aplicada en la entrada o la salida es una cadena no válida.

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)

si una cadena aplicada en la entrada o la salida es una cadena no válida.

Ejemplo

Cabecera de la POU

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
		output_value: STRING[32]:='';
	END_VAR

Cuerpo de la POU

En este ejemplo se introducen directamente las constantes en las entradas de la función. También se pueden declarar las variables en la cabecera de la POU. Las cadenas de caracteres deben ir entre comillas simples, tanto en la cabecera de la POU como en la función. En este caso el carácter 'c' en la cadena 'MrSpock' se ha sustituido por una 'o', generando como resultado la cadena 'MrSpook'.

Cuerpo 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

Cuerpo IL

Modificado el: 2024-04-02Comentarios sobre esta páginaLínea directa de Panasonic