STRING_TO_BUF

Copia o conteúdo de uma string para um vetor (buffer) de qualquer tipo de dado, retornando o número de bytes (caracteres) copiados ou -1 quando o buffer não comporta a string. É uma função (sem estado; não requer instância).

Biblioteca: HI_STD · Namespace: HILS · Tipo: função

Função

            STRING_TO_BUF
           +-------------+
STRING ----|STR -------- |----
           |             |
   ANY ----|BUF -------- |---- ANY
           +-------------+

Percorre a string STR e transfere seus caracteres, byte a byte, para o vetor BUF. O valor retornado é a quantidade de bytes efetivamente copiados. Quando o buffer de destino é menor que a string a ser copiada, nenhuma cópia é concluída e a função retorna -1. BUF pode ser um vetor de qualquer tipo de dado.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

STR

IN_OUT

STRING

—

—

String a ser copiada para o buffer.

BUF

IN_OUT

ANY

—

—

Vetor de dados que recebe a string.

Retorno / Saídas

Retorna INT: número de caracteres (bytes) transferidos para o buffer, ou -1 quando o buffer não possui espaço suficiente para receber a string.

Pré-condições

  • BUF deve ter capacidade (em bytes) igual ou maior que o comprimento de STR.

Ver também

BUF_TO_STRING

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    my_str : STRING := 'HIstudio';  (* String a ser copiada *)
    my_buf : ARRAY [0..29] OF SINT; (* Buffer a receber a string *)
    count  : INT;                   (* Contador de bytes da string *)
END_VAR

(* Exemplo de ativacao da funcao dentro da POU *)
(* ... *)

count := HILS.STRING_TO_BUF(my_str, my_buf);
IF (count = -1) THEN
  (* Trata erro na conversao. Buffer nao possui espaco suficiente *)
END_IF;

(* ... *)