Páginas filhas
  • _ADVPL_strToDynArrayByToken


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

CHAR

Sim

Texto de origem para ter seu conteúdo dividido em partes, de acordo com um delimitador.

a4GLReturnArray

ARRAY OF CHAR

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.

(aviso) 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.

(aviso) 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.

Exemplo:
   DEFINE la_values ARRAY[] OF CHAR(300)

cToken

CHAR

Sim

Um caracter ou uma sequência de caracteres que é reconhecido como o delimitador dos valores contidos no parâmetro cText.

Retorno


(aviso) 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. (aviso) 

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.

Veja também


_ADVPL_strToDynArrayBySize