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
BUFdeve ter capacidade (em bytes) igual ou maior que o comprimento deSTR.
Ver também
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;
(* ... *)