REPLACE

Substitui L caracteres da string IN1 pela string IN2, iniciando na posição P. É uma função pura (sem estado; retorna o resultado diretamente).

Biblioteca: IEC_STD · Namespace: IEC · Tipo: função

Função

                  REPLACE
              +-------------+
ANY_STRING ---|IN1          |--- ANY_STRING
              |             |
ANY_STRING ---|IN2          |
              |             |
   ANY_INT ---|L            |
              |             |
   ANY_INT ---|P            |
              +-------------+

Nota

Caso as strings IN1 ou IN2 sejam inválidas a string de saída não será alterada e o tipo de erro gerado pode ser obtido através da função GET_SYSTEM_ERR.

Caso o valor de L seja menor que zero a string de saída não será alterada e o tipo de erro gerado pode ser obtido através da função GET_SYSTEM_ERR.

Caso o valor de P seja menor que L a string de saída não será alterada e o tipo de erro gerado pode ser obtido através da função GET_SYSTEM_ERR.

Caso a operação resulte em uma string maior que a capacidade da string de saída o processo será cancelado e o tipo de erro gerado pode ser obtido através da função GET_SYSTEM_ERR.

Parâmetros

Nome

Direção

Tipo

Faixa / Unidade

Descrição

IN1

IN

ANY_STRING

—

String a ser substituída.

IN2

IN

ANY_STRING

—

String a ser inserida.

L

IN

ANY_INT

—

Tamanho de IN1 a ser removido a partir de P.

P

IN

ANY_INT

—

Posição inicial de IN1 para a substituição.

Retorno / Saídas

Tipo

Faixa / Unidade

Descrição

ANY_STRING

—

String resultante da operação.

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    value_in1 : STRING; (* valor do operando de entrada 1 *)
    value_in2 : STRING; (* valor do operando de entrada 2 *)
    value_out : STRING; (* valor resultante da operação *)
    value_l   : INT;    (* tamanho a ser removido *)
    value_p   : INT;    (* posição de inserção *)
END_VAR

(* Exemplo de ativação da função dentro da POU *)
(* ... *)
value_in1  := 'ABCD'; (* STRING a ser fornecido *)
value_in2  := 'EFGH'; (* STRING a ser fornecido *)
value_l    := 1;  (* Valor a ser fornecido *)
value_p    := 2;  (* Valor a ser fornecido *)
value_out  := REPLACE(IN1 := value_in1, IN2 := value_in2, L := value_l, P := value_p);
    (* resultado value_out = 'AEFGHCD' *)
(* ... *)