Realizar a divisão de uma cadeia de texto, usando um Token como delimitador e distribuindo o resultado dos valores identificados em linhas de uma lista (ARRAY) de tipo simples (ARRAY OF CHAR).
Sintaxe
_ADVPL_strToDynArrayByToken( < cText >, < a4GLReturnArray >, < cToken >)
Parâmetros
Nome | Tipo | Obrigatório? | Descrição |
---|---|---|---|
cText |
| Sim | Texto de origem para ter seu conteúdo dividido em partes, de acordo com um delimitador. |
a4GLReturnArray |
| Sim | Nome da variável 4GL do tipo ARRAY OF CHAR que irá receber a atribuição dos valores resultantes da divisão do conteúdo do parâmetro cText, respeitando a cadeia de caracteres indicada como delimitador. Este parâmetro deverá ser uma variável do tipo ARRAY simples, ou seja, na linguagem 4GL ela é definida como ARRAY OF CHAR. Assim sendo, não se deve utilizar aqui um parâmetro que seja, por exemplo, ARRAY OF RECORD. O array pode ou não ter uma quantidade de linhas na sua definição, no entanto a função sempre irá eliminar todas suas linhas e o retorno sempre será um ARRAY com a quantidade de linhas correspondente a quantidade de ocorrências encontradas, conforme o delimitador de valores informado. |
cToken |
| Sim | Um caracter ou uma sequência de caracteres que é reconhecido como o delimitador dos valores contidos no parâmetro cText. |
Retorno
Apesar desta função não possui um retorno no formato padrão, o seu retorno é realizado por referência no parâmetro de entrada da função chamado a4GLReturnArray. Leia as informações deste parâmetro acima no tópico Parâmetros.
Exemplo
#---------------------------------------# FUNCTION strToDynArrayByToken_test() #---------------------------------------# DEFINE l_text CHAR(100) DEFINE la_values ARRAY[] OF CHAR(5) DEFINE l_idx SMALLINT #Separar os valores encontrados num conteúdo texto, usando o delimitador como "|" LET l_text = "AAA|BBB|CCCC|DDDDD|EE|" CALL _ADVPL_strToDynArrayByToken(l_text,la_values,'|') CALL conout("TOTAL DE VALORES ENCONTRADOS = "||arrayLength(la_values)||" LINHAS") FOR l_idx = 1 TO arrayLength(la_values) CALL conout("Valor "||LOG_alltrim(l_idx)||" = "||la_values[l_idx] CLIPPED) END FOR END FUNCTION
Informações
Fontes: string.prw
Disponível a partir do pacote Logix 12.1.2403.