Realizar a divisão de uma cadeia de texto em blocos de texto de um tamanho fixo e distribuindo o resultado dos valores dos blocos em linhas de uma lista (ARRAY) de tipo simples (ARRAY OF CHAR).
_ADVPL_strToDynArrayBySize( < cText >, < a4GLReturnArray >, < nSize >, [ < nIgnoreBlankAtEnd > ] ) |
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âmetor cText, respeitando a cadeia de caracteres indicada como delimitador.
|
nSize |
| Sim | Tamanho máximo do bloco de texto que conterá cada linha do ARRAY. |
| nIgnoreBlankAtEnd |
| Não | Indicador que permite ignorar a existência de espaços em branco no final do conteúdo de cada bloco, fazendo com que cada bloco obrigatoriamente seja finalizado por algum caracter diferente de brancos. Neste caso os blocos ficam limitados ao tamanho máximo indicado, podendo conter um tamanho menor, caso a posição final do bloco contenha um espaço em branco. Este indicador é utilizado para situações onde deseja utilizar o conteúdo destes blocos com seu conteúdo original sem agregar, nem perder qualquer posição, mesmo com posições que seja de espaços em branco. TRUE - Não permite que os blocos de textos identificados sejam finalizados com espaços em branco. FALSE - Os blocos identificados de texto podem terminar com espaços em branco Exemplo: Se este parâmetro for TRUE, para um texto de 250 posições, divididas em blocos de 50 caracteres, o texto final conterá os exatos 250 caracteres, caso opte em juntá-los um a um usando a instrução CLIPPED, pois cada bloco foi separado considerando que o último caracter de cada bloco não fossem de espaços em branco. Neste caso os espaços em branco que poderiam existir no final dos blocos é automaticamente transferido para o bloco subsequente.
|
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.
#---------------------------------------#
FUNCTION strToDynArrayBySize_test()
#---------------------------------------#
DEFINE l_text CHAR(100)
DEFINE la_values ARRAY[] OF CHAR(7)
DEFINE l_idx SMALLINT
#Separar os valores encontrados num conteúdo texto, usando o delimitador como "|"
LET l_text = "123456 8901234567 9012345678 0"
CALL _ADVPL_strToDynArrayByToken(l_text,la_values,7)
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
|
Fontes: string.prw
Disponível a partir do pacote Logix 12.1.2403.